(C++)
#包括<iostream>
#包括<队列>
整型main(){
int上限=1000;
//0->复合,1->素数,2->序列成员
auto*nums=新整数[upper];
for(int i=0;i<上限;i++)
数量[i]=1;
nums[0]=nums[1]=2;
std::queue<int>in_progress;
in_progress.push(1);
for(int i=2;i<上限;i++){
如果(数量[i]==0)继续;
//是质数
in_progress.push(i);
对于(int j=i+i;j<上限;j+=i){
数量[j]=0;
}
}
while(!in_progress.empty()){
int p=in_progress.front();
in_progress.pop();
整数div=1;
bool valid=true;
while(div<=p){
整数del=(p/(div*10))*div+(p%div);
if(nums[del]!=2){
有效=假;
断裂;
}
div*=10;
}
if(有效){
nums[p]=2;
标准::cout<<p<<“,”;
}
}
}
|