回文质数判断
程序员文章站
2024-02-21 12:24:52
...
思路:回文加质数判断,用到线性筛法打表
#include<cstdio>
int prime[10000005];//储存素数
int check[10000005];//标记合数
void is_peime(int n){
int cnt=0;
check[1]=true;//1不是素数
for(int i=2;i<=n;i++){
if(!check[i])prime[cnt++]=i;//说明是素数
for(int j=0;j<cnt&&i*prime[j]<=n;j++){
check[i*prime[j]]=true;//倍数是合数
if(i%prime[j]==0)break;
}
}
}
int huiwen(int n){//判断回文数
int m=n;
int t=0;
t+=n%10;
n/=10;
while(n){
t*=10;
t+=n%10;
n/=10;
}
if(m==t){
return 1;
}else{
return 0;
}
}
int main(){
int a,b;
scanf("%d %d",&a,&b);
if(b>10000000)b=10000000;
is_peime(b);
for(int i=a;i<=b;i++){
if(i>10000000)break;
if(huiwen(i)&&!check[i]){
printf("%d\n",i);
}
}
return 0;
}