题目要求判断给出的一个数是否为“真素数”。真素数的定义为:自身为素数,且自身各位数之和仍为素数。例如,11为素数,1+1=2也为素数,所以11为真素数。
输入格式:
输入在一行中给出需要判断的数n.
输出格式:
如果n为真素数,则输出“yes”,否则输出“no”。
输入样例:
11
输出样例:
yes
#include<stdio.h>
#include<math.h>
int isprime(int n)
{
if(n<=1)
{
return 0;
}
else if(n<=3)
{
return 1;
}
else
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}
}//520/10=52 52/10==5 5/10=0
int trueprime(int m)
{
int a=0,sum=0;
if(isprime(m)==1)
{
while(m!=0)
{
sum+=m%10;//循环加上对m取余数实现由低到高位的和
m/=10;
}
if(isprime(sum)==1)
{
return 1;
}
}
else
{
return 0;
}
}
int main()
{
int n=0,sum=0;
scanf("%d",&n);
if(trueprime(n)==1)
{
printf("yes");
}
else
{
printf("no");
}
}