求m~n(m≥10,n≤10000)之间的回文素数,所谓回文素数,即这个数既是回文又是素数。程序首先要判断某个数是否是回文,再判断是否是素数。如果是回文素数,则保存于数组中,并按6位域宽输出,每行输出5个。
Input:
m n
Output:
m~n之间的回文素数,每个数占6位,每行限输出5个
Sample Input:
10 10000
Sample Output:
11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929
#include<iostream>
using namespace std;
int main(){
int m,n,count=0;
cin>>m>>n;
for(int i=m;i<=n;i++){
int s=0,x=0,sum=0;
s=i;
//判断是否是回文数
while(s>0){
x=x*10+s%10;
s/=10;
}
//判断是否是素数
for(int j=2;j<i;j++){
if(i%j==0){
sum=sum+1;//用作标记
break;
}
}
if(x==i&&sum==0){//满足上述二者时
printf("%6d",i);
count++;
if(count%5==0&&count!=0)
cout<<endl;
}
}
return 0;
}