Code
#include <stdio.h>
#include <math.h>
int IsPrime(int x)
{
int i;
for(i=2; i<=sqrt(x); i++)
{
if(x % i == 0)
break;
}
if(i <= sqrt(x))
return 0;
return 1;
}
int Separate(int y)
{
int s = 0;
while(y > 0)
{
s += y % 10;
y = y / 10;
}
return s;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int a = IsPrime(n);
int b = Separate(n);
int c = IsPrime(b);
if(a && c)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
反思:for循环练习,先判断n自身是否为素数,用separate()函数求得它的每一位数字之和,再判断它的每一位数字之和是否为素数即可。