baixk @ 2023-11-09 20:19:17
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
if(a<=5&&b>=5)cout<<5<<endl;
if(a<=7&&b>=7)cout<<7<<endl;
if(a<=11&&b>=11)cout<<11<<endl;
for(int d1=1;d1<=9;d1+=2)
for(int d2=0;d2<=9;d2++){
int n=101*d1+10*d2;
if(n<a)continue;
if(n>b)return 0;
int f=1;
for(int j=3;j*j<=n;j++)
if(n%j==0){
f=0;
break;
}
if(f)cout<<n<<endl;
}
for(int d1=1;d1<=9;d1+=2)
for(int d2=0;d2<=9;d2++)
for(int d3=0;d3<=9;d3++){
int n=10001*d1+1010*d2+100*d3;
if(n<a)continue;
if(n>b)return 0;
int f=1;
for(int j=3;j*j<=n;j++)
if(n%j==0){
f=0;
break;
}
if(f)cout<<n<<endl;
}
for(int d1=1;d1<=9;d1+=2)
for(int d2=0;d2<=9;d2++)
for(int d3=0;d3<=9;d3++)
for(int d4=0;d4<=9;d4++){
int n=1000001*d1+100010*d2+10100*d3+1000*d4;
if(n<a)continue;
if(n>b)return 0;
int f=1;
for(int j=3;j*j<=n;j++)
if(n%j==0){
f=0;
break;
if(f)cout<<n<<endl;
}
}
return 0;
}
by 帝都_henry26268 @ 2023-11-09 21:16:53
建议不采取题目的提示,思路可以参考我这个代码写的
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int f[1000000]={0};
int hw(int a){
int x=a;
while(x){
a=a*10+x%10;
x/=10;
}
return a;
}
int hw2(int a){
int x=a/10;
while(x){
a=a*10+x%10;
x/=10;
}
return a;
}
bool prime(int a){
if(a%2==0&&a!=2){
return 0;
}
for(int i = 2;i <= sqrt(a);i++){
if(a % i == 0){
return 0;
}
}
return 1;
}
int main(){
int a,b,cnt=0;
cin >> a;
cin >> b;
for(int i = 1;i <= 100000;i++){
f[++cnt] = hw(i);
f[++cnt] = hw2(i);
}
sort(f+1,f+cnt+1);
for(int i = 1;i <= cnt;i++){
if(f[i]>b){
return 0;
}
else if(f[i]>=a&&prime(f[i])){
cout << f[i] << endl;
}
}
return 0;
}