1614: 五位以内的对称素数
1614: 五位以内的对称素数
Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 464 Solved: 241
[Submit][Status][Web Board]
Description
判断一个数是否为对称且不大于五位数的素数。
Input
输入数据含有不多于50个的正整数(0<n<232)。
Output
对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
Sample Input
11 101 272
Sample Output
Yes
Yes
No
#include<stdio.h>
#include<math.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(weishu(n)&&duichen(n)&&prime(n))
printf("Yes\n");
else
printf("No\n");
}
}
int weishu(int n)
{
int a[20],i=1;
while(n!=0)
{
a[i]=n%10;
n=n/10;
i++;
}
if(i<=5)
return 1;
else
return 0;
}
int duichen(int n)
{
int a[20],i=0,k,j;
while(n!=0)
{
a[i]=n%10;
n=n/10;
i++;
}
for(j=0,k=i-1;(j<i)&&(j<=k);j++,k--)
if(a[j]!=a[k])
return 0;
else
return 1;
}
int prime(int n)
{
int k,i;
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
return 0;
if(i==k+1)
return 1;
}

浙公网安备 33010602011771号