T - 完美的素数
Description
素数又称质数。指一个大于1的自然数,除了1和此整数自身外,不能被其他自然数整 除的数。我们定义:如果一个素数是完美的素数,当且仅当它的每一位数字之和也 是一个素数。现在给你一个正整数,你需要写个程序判断一下这个数按照上面的定义是不是一个完美的素数。
Input
输入包含多组测试数据。
每组测试数据只包含一个正整数 n (1 < n <= 10^6)。
Output
对于每组测试数据,如果 n 是完美的素数,输出“YES”,否则输出“NO”(输出均不含引号)。
Sample
Input
11
13
Output
YES
NO
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
int n,i;
int f,t;
int s;
while(scanf("%d",&n)!=EOF)
{
f=1; //判断素数的标志,1是素数,0不是
s=0;
if(n==1)
f=0;
for(i=2; i<n; i++)
{
if(n%i==0)
{
f=0;
break;
}
}
if(f==1) //求素数的和
{
while(n!=0)
{
t=n%10;
n=n/10;
s+=t;
}
}
for(i=2; i<s; i++) //判断和是否为素数
{
if(s%i==0)
{
f=0;
break;
}
}
if(f==1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}