完美的素数

来源:互联网 发布:欧莱雅美发产品淘宝 编辑:程序博客网 时间:2024/05/16 10:19

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;        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;}
原创粉丝点击