您的位置:首页 > 其它

完美的素数

2017-11-17 16:51 127 查看
Problem Description

素数又称质数。指一个大于1的自然数,除了1和此整数自身外,不能被其他自然数整除的数。我们定义:如果一个素数是完美的素数,当且仅当它的每一位数字之和也是一个素数。现在给你一个正整数,你需要写个程序判断一下这个数按照上面的定义是不是一个完美的素数。


Input

输入包含多组测试数据。

每组测试数据只包含一个正整数 n (1 < n <= 10^6)。

Output

对于每组测试数据,如果 n 是完美的素数,输出“YES”,否则输出“NO”(输出均不含引号)。

Example Input

11

13

Example Output

YES

NO

1不是素数,2是素数。

素数的定义:大于1,除了1和本身之外无其他因子

#include <iostream>
using namespace std;
int main()
{
int n,sum;
int i,flag;
while(cin>>n)
{
flag=1;

4000
sum=0;
if(n==1)//1不是素数
cout<<"NO"<<endl;
else
{
for(i=2; i<n-1; i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
while(n!=0)//不知道位数,取各位用while
{
sum+=n%10;
n=n/10;
}
if(sum==1)
{
flag=0;
}
for(i=2; i<sum-1; i++)
{
if(sum%i==0)
{
flag=0;
break;
}
}
}
if(flag)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: