oSmile_ @ 2023-10-06 09:01:01
#include <iostream>
using namespace std;
int array[100];
int main(){
std::ios::sync_with_stdio(false);
int a,b;
int renum2;
cin >>a>>b;
if(a==2){
cout<<2<<endl;
}
int num=0;
int temp=0;
int temp2 = 1;
if(a%2==0)a++;
for(int i=a;i<=b;i++){
if(i%2==0)continue;
if(i<10){
for(int j=2;j<i;j++){
if(i%j==0){
break;
}
if(j==i-1){
cout <<i<<endl;
}
}
}else{
temp =i;
//将数据逐个存进数组中
while(true){
array[num] = temp%10;
if(temp <10)break;
num++;
temp = temp/10;
}
//判断回文数
for(int j=0;j<=num/2;j++){
if(array[j]!=array[num-j])break;
if(j==num/2){
//判断质数
for(int x=3;x<i;x++){
if(i%x==0)break;
if(x==i-1){
cout <<i<<endl;
}
}
}
}
}
num =0;
temp =0;
}
return 0;
}
by cjh20090318 @ 2023-10-06 09:24:04
为什么不能直接枚举一个数呢?而是用这种枚举数位的方法。
by oSmile_ @ 2023-10-06 10:38:36
枚举数位不是判断回文数吗
by liu2659414541 @ 2023-10-08 20:00:44
判断质数可以用for (int x = 2; x < sqrt(i) + 1; x++)