算法笔记--5.4素数

题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

输入
输入有多组数据。
每组一行,输入n。

输出
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。

样例输入
70
样例输出
11 31 41 61

代码

#include 

int prime[10000],pNum;
void Find_prime(int n){
     
    bool p[10000] = {
     0};
    pNum = 0;
    for(int i=2;i<n;i++){
     
        if(p[i] == false){
     
            prime[pNum++] = i;
            for(int j=i+i;j<n;j+=i){
     
                p[j] = true;
            }
        }
    }
}

int main(){
     
    int n;
    while (scanf("%d",&n) != EOF)
    {
     
        Find_prime(n);
        int A[pNum],k=0;
        for(int i=0;i<pNum;i++){
     
            if(prime[i] % 10 == 1){
     
                A[k++] = prime[i];
            }               
        }
        if(k == 0)
            printf("-1\n");
        else
        {
     
            for(int i=0;i<k;i++){
     
                printf("%d",A[i]);
                if(i != k-1){
     
                    printf(" ");
                }    
                else{
     
                    printf("\n");
                }
            }
        }
    }
    return 0;
}

AC

你可能感兴趣的:(C/C++基础)