判断一个数是否为对称且不大于五位数的素数。
输入
输入数据含有不多于50个的正整数(0
输出
对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
样例输入
11 101 272
样例输出
Yes
Yes
输入
输入数据含有不多于50个的正整数(0
输出
对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
样例输入
11 101 272
样例输出
Yes
Yes
No
注意要求,并未说明输入的数是五位数以内
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main()
{
int N;
while(scanf("%d",&N)!=EOF)
{
if(N==0||N==1)
{
printf("No\n");
continue;
}
char a[10000];
memset(a,0,sizeof(a));
sprintf(a,"%d",N);
int i,f=1,l=strlen(a);
if(l>5)
{
printf("No\n");
continue;
}
for(i=0;i<l/2;i++)
{
if(a[i]!=a[l-i-1])
{
f=0;
break;
}
}
if(!f)
{
printf("No\n");continue;
}
int F=1,j;
for(j=2;j*j<N;j++)
{
if(!(N%j))
{
F=0;
break;
}
}
if((j*j)==N) F=0;
if(f&&F)
printf("Yes\n");
else printf("No\n");
}
}