P1217回文质数
RRLee
·
·
题解
#include<bits/stdc++.h>
using namespace std;
int a,b;
int size(int x){
int i=1;
while(pow(10,i)<x) i++;
return i;
}
int p(int x){
int i;
for(i=2;i*i<=x;i++){
if(x%i==0) return i;
}
return 1;
}
void f(int x,int m,int n){
if(m>n){
if(x>=a&&x<=b&&p(x)==1) cout<<x<<endl;
else return;
}
int i;
if(m==0){
for(i=1;i<=9;i+=2) f(x+i*pow(10,n)+i*pow(10,m),m+1,n-1);
}
if(m<n&&m>0){
for(i=0;i<=9;i++) f(x+i*pow(10,n)+i*pow(10,m),m+1,n-1);
}
if(m==n){
for(i=0;i<=9;i++) f(x+i*pow(10,m),m+1,n-1);
}
}
int main(){
cin>>a>>b;
int i,la=size(a),lb=size(b);
for(i=la-1;i<=lb+1;i++) f(0,0,i);
}