- Description
判断一个数是否为对称且不大于五位数的素数。
- Input
输入数据含有不多于50个的正整数(n<2^32)。
- Output
对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
- Sample Input
11 101 272
- Sample Output
Yes
Yes
No
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
char s[6];
int i,j,k,m;
while(scanf("%s",s)!=EOF)
{
int ok=1,su=0;
m=strlen(s);
for(i=0,j=m-1;i<=j;i++,j--)
if(s[i]!=s[j])
{
printf("No\n");ok=0;
break;
}
if(ok)
{
for(i=0;i<m;i++)
su=su*10+s[i]-'0';
if(su<2)
printf("No\n");
else
{
k=(int)sqrt(su);
for(i=2;i<=k;i++)
if(su%i==0)
{ printf("No\n");break;}
if(i>k)
printf("Yes\n");
}
}
}
return 0;
}