给定一个非负整数n,寻找比它大的最小回文素数。例如,当n=100时,结果为101。因为101是回文数(正读、反读都一样的数)且是素数。
输入格式:
第一行一个T(1≤T≤100),代表有T组测试数据。对于每组测试,输入一个整数n( 0≤n≤65535) 。
输出格式:
对于每组测试,输出比它大的最小回文素数,每个输出占一行。
#include<stdio.h>
int f(int n){
if(n==0||n==1)
return 0;
for(int i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int fx(int n){
int x=n,s=0;
while(x){
s=x%10+s*10;
x/=10;
}
if(s==n)
return 1;
else
return 0;
}
int main(){
int n=0;
scanf("%d",&n);
int a[105];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++)
{
for(int j=a[i]+1;;j++)
{
if(f(j)&&fx(j))
{
printf("%d",j);
if(i<n)
printf("\n");
break;
}
}
}
return 0;
}