如果一个数字本身是质数,并且该数字的个位数应该是质数,那么这个数字就是一个好数字。
我不知道我在这段代码中做错了什么。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main(){
int n=257;
int i,k;
int count=0;
for(i=2;i<n;i++){
if(n%i==0){
printf("not a good number");
break;
}
}
if(i==n){
for(k=2;i!=0;k+=2){
if(i%10==k){
i=i/10;
count++;
}
}
}
printf("%d", count);
}我没有得到3作为计数的输出。我试着检查257是否是质数,在第二部分中,我划分了每个元素,看看每个元素是否都是质数。
发布于 2021-06-22 21:59:08
那部分
for(k=2;i!=0;k+=2){
if(i%10==k){
i=i/10;
count++;
}
}将是一个无限循环,因为i%10为7,而i=257和k不是该值,因为它是偶数。
众所周知,一位素数的集合是{2, 3, 5, 7},因此您可以简单地对照列表进行检查。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main(){
int n=257;
int i,k;
int count=0;
for(i=2;i<n;i++){
if(n%i==0){
printf("not a good number");
break;
}
}
if(i==n){
for(;i!=0;i=i/10){
int d=i%10;
if(d!=2 && d!=3 && d!=5 && d!=7){
printf("not a good number");
break;
}
count++;
}
}
printf("%d", count);
}https://stackoverflow.com/questions/68084825
复制相似问题