C语言编程怎样找超级素数?

如题所述

一个素数,依次从最高位去掉一位,两位……若得到的都是素数,且各数字不为0,则称为超级素数。 /*TC2.0调试*/ #include "stdio.h" #include "math.h" int prime(int i){/*判断是否为素数*/ int j; if(i==1) return 0; for(j=2;j<=sqrt(i);j++) if(i%j==0) return 0; return 1; } int IsSuperPrime(int i){/*判断此数是否为超级素数函数*/ int j; if(prime(i)==1){ do{ i=i/10; if(prime(i)==0) return 0; } while(i>=10); return 1; } else return 0; } void main()/*求100~9999之间所有的超级素数个数,和,及最大值*/ { int i,spn=0,spm; long sps=0; for(i=101;i<=9997;i+=2) if(IsSuperPrime(i)==1){ sps+=i; spn++; spm=i; } printf("sum=%ld,Total=%d,Max=%d",sps,spn,spm); getch(); }

记得采纳啊
温馨提示:答案为网友推荐,仅供参考