题解 | #素数#

素数

https://www.nowcoder.com/practice/7f4be54b37a04fdaa4ee545819151114

#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;

const int MAX=10001;

vector <int> prime;
bool isPrime[MAX];

void Initial(){
    for(int i=0;i<MAX;i++){
        isPrime[i]=true;
    }

    isPrime[0]= false;
    isPrime[1]= false;
    for(int i=2;i<MAX;i++){
        if(!isPrime[i]){
            continue;
        }
        prime.push_back(i);
        for(int j=i*i;j<MAX;j+=i){
            isPrime[j]= false;
        }
    }
    return;

}

int main(){
    Initial();
    int n;
    while(scanf("%d",&n)!=EOF){
        if(n==0){
            break;
        }
        bool isOutput=false;
        for(int i=0;i<prime.size()&&prime[i]<n; i++){
            if(prime[i]%10==1){
                isOutput= true;
                printf("%d ",prime[i]);
            }
        }
        if(!isOutput){
            printf("-1");
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务