BLACK_MANBA @ 2023-01-27 14:55:56
#include<bits/stdc++.h>
using namespace std;
int a,b;
int zs(int x){//判断质数
if(x==1) return 0;//特判1
if(x%2==0) return 0;//是2的倍数都舍掉
else{//枚举
for(int i=2;i*i<=x;i++){
if(x%i==0)
return 0;
}
return 1;
}
}
int hw(int x){//类似数字反转,判断回文
int cnt=0;
int s=x;
while(x!=0){
cnt=cnt*10+x%10;
x/=10;
}
if(cnt==s) return 1;
else return 0;
}
int main(){
cin>>a>>b;
for(int i=a;i<=b;i++){
if(i==9989900) break;
if(zs(i) and hw(i))//回文与质数双双通过
cout<<i<<endl;
}
return 0;
}
样例过了
by Jerry_AC @ 2023-01-27 14:59:29
@CM_repairman 您是否可以考虑一下这个算法的复杂度?
by BLACK_MANBA @ 2023-01-27 15:27:10
@zyh0423
所以要怎么改呢