题目
素数又称质数。指一个大于1的自然数,除了1和此整数自身外,不能被其他自然数整除的数。我们定义:如果一个素数是完美的素数,当且仅当它的每一位数字之和也是一个素数。现在给你一个正整数,你需要写个程序判断一下这个数按照上面的定义是不是一个完美的素数。
Input
输入包含多组测试数据。 每组测试数据只包含一个正整数 n (1 < n <= 10^6)。
Output
对于每组测试数据,如果 n 是完美的素数,输出“YES”,否则输出“NO”(输出均不含引号)。
Examples
input复制
11
13
output复制
YES
NO
#include<stdio.h>
#include<math.h>
int main(){
int y,z,sum=0,i=2,w=2,v=2,a;
int x;
while(scanf("%d",&x)!=EOF){
a=x;
for(i=2;i<a;i++){
if(a%i==0){
w=1;
}
}
while(x>0) //循环条件保持n不为零即可,也可以用n!=0或者括号内一个n就完事了
{ sum+=x%10; //累计各个位数
x/=10; }
for(i=2;i<sum;i++){
if(sum%i==0){
v=1;
}
}if(sum==2){
v=2;
}
if(w==2&&v==2){
printf("YES\n");
}else{
printf("NO\n");
}
}return 0;
}