|
发表于 2020-12-21 19:15:01
|
显示全部楼层
一个n位超级素数是指一个n位正整数,它的前1位,前2位, . . . , 前n位均为素数,例如,7331是个4位超级素数,因为7,73,733,7331均为素数。
#include <stdio.h>
#include <math.h>
#define DEEP 10000 //为循环深度
int isPrime(int p);
int isSuperPrime(int p);
int isSuperPrime(int p)
{
if(isPrime(p)&&p>10)
{
while(p>10)
{
p/=10;
if(!(isPrime(p)))
return 0;
}
return 1;
}
return 0;
}
int isPrime(int p)
{
int a,i;
if(p<2)
return 0;
else if(p==2)
return 1;
a=(int)sqrt(p+1);
for(i=2;i<=a;i++)
if(!(p%i))
return 0;
return 1;
}
int main()
{
int i;
for(i=2;i<DEEP;i++)
if(isSuperPrime(i))
printf("%d\t",i);
getch();
return 0;
} |
|