像这种每次都要判断素数的情况,就将素数表提前计算出来。省的一次次加载判断太耗费时间
#include <iostream>
using namespace std;
const int maxn = 10001;
int n,pNum=0;
bool p[maxn]={0};
int prime[maxn]={0};
// 判断个位数是否为1
bool is_one(int n){
if(n%10==1){
return true;
}else
return false;
}
// 某个范围内的素数表
void prime_table(){
for(int i=2;i<maxn;i++){
if(p[i]==false){
// cout<<"table"<<i<<endl;
prime[pNum++]=i;
for(int j=i+i;j<maxn;j+=i){
p[j]=true;
}
}
}
}
int main(){
prime_table(); // 像这种每次都要判断素数的情况,就将素数表提前计算出来。省的一次次加载判断太耗费时间
while(cin>>n){
for(int i=0;prime[i]<n;i++){ // 此处的条件:要将素数的大小控制在n以内
if(is_one(prime[i])==true){
cout<<prime[i]<<" ";
}
}
cout<<endl;
}
return 0;
}