编程找出三位数中所有的幻影素数并统计共有多少对

2025-02-25 15:44:32
推荐回答(2个)
回答1:

#include "stdio.h"
int isprime(int n){//素数判断
int i;
if(!(n&1))
return 0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int x,t,s,k;
for(k=s=0,x=101;x<1000;x+=2)
if(isprime(x) && isprime(t=x%10*100+x/10%10*10+x/100) && x-t){
printf(++k%5 ? "%d <--> %d   " : "%d <--> %d\n",x,t);
s++;
}
printf("\nA total of %d phantom primes.\n",s);
return 0;
}

运行结果:

回答2:

思路:从1循环到999,找到一个素数n,(素数n就是不能被1到n-1的数整除),然后将得到该数的反序数,且不等于n,,算找到一个,全部找完后,总数除以2,就可以了。