题解 | #素数#

素数

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

//用素数筛法找出所有质数
//质数的倍数为非质数
#include <iostream>
using namespace std;

int isPrime[10001];

void Initial()
{
    for(int i=0;i<=10000;i++)
    {
        isPrime[i]=1;//先都认为是质数
    }
    isPrime[0]=0;
    isPrime[1]=0;

    for(int i=2;i<=10000;i++)//找出真正的素数
    {
        if(isPrime[i]==0)continue;


        for(int j=i*2;j<=10000;j+=i)//质数的倍数为非质数
        {
            isPrime[j]=0;
        }
    }
}

int main() {

    Initial();
    int n;
    while (cin >> n) { 
       int flag=0;//没有各位为1 的素数
       for(int i=2;i<n;i++)
       {
        if(isPrime[i]==1&&i%10==1)
        {
            flag=1;
            cout<<i<<" ";
        }
       }
       if(flag==0)cout<<"-1";
       cout<<endl;
    }
}

全部评论

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务