题解 | #素数#
素数
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; } }