编程任务编号 O: 回文素数(基础版)
任务描述
11是一个回文素数.因为它不仅是素数,同时还是回文数(回文数,即把一个数字正着读或者倒着读都是一样的,如121,1331等都是回文数). 现在写一个程序把a的b之间所有的回文素数都找出来(2≤a<b≤1000,000).
输入
第一行,一个整数N(N<10) 以下N行,每行两个整数a,b.
输出
输出回文素数的列表,每行一个,按从小到大的顺序输出.
输入举例
1 5 200
输出举例
5 7 11 101 131 151 181 191
#include<stdio.h>
#include<math.h>
#include<stdbool.h>
int T,a,b,i,j,c;
int hui(int x){
int ans=0;
while(x){
ans=10*ans+x%10;
x/=10;
}
return ans;
}
bool prime(int x){
int i;
for(i=2;i<=sqrt(x);i++)
if(x%i==0) return false;
return true;
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++){
if(hui(i)==i){
if(prime(i))
printf("%d\n",i);
}
}
}
}