| 
 | 
 
 
发表于 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; 
} |   
 
 
 
 |