Problem B: 回文素数(C语言题)
Description
输入m和n,求m和n之间(包括m和n)的所有回文素数。回文素数是指该数既是素数又是回文数。
Input
输入两个正整数m和n。
Output
按照要求输出所有回文素数。两两之间用1个空格隔开。
Sample Input
2 9
Sample Output
2 3 5 7
#include<stdio.h>
#include<math.h>
//判断素数
int SUSHU(int n){
int flag=1;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
flag=0;
}
}
return flag;
}
//判断回文
int HUIWEN(int x){
//将数倒转,看是否相等
int num=0;
int n=x;
while(x!=0){
num=num*10+x%10;
x/=10;
}
if(n==num){
return 1;
}
else
return 0;
}
int main(){
int m,n;
scanf("%d %d",&m,&n);
int flag=0;
for(int i=m;i<=n;i++){
if(SUSHU(i)==1&&HUIWEN(i)==1){
if(flag==0){
printf("%d",i);
flag=1;
}
else
printf(" %d",i);
}
}
return 0;
}