完美的素数
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
素数又称质数。指一个大于1的自然数,除了1和此整数自身外,不能被其他自然数整除的数。我们定义:如果一个素数是完美的素数,当且仅当它的每一位数字之和也是一个素数。现在给你一个正整数,你需要写个程序判断一下这个数按照上面的定义是不是一个完美的素数。
输入
输入包含多组测试数据。
每组测试数据只包含一个正整数 n (1 < n < 10^6)。
输出
对于每组测试数据,如果 n 是完美的素数,输出“YES”,否则输出“NO”(输出均不含引号)。
示例输入
11 13
示例输出
YES NO
- #include<stdio.h>
- int sushu(int p);
- int shuhe(int q);
- int main()
- {
- int n, x, y, z;
- while(scanf("%d", &n)!=EOF)
- {
- x = sushu(n);
- y = shuhe(n);
- z = sushu(y);
- if(x == 1 && z == 1)
- printf("YES\n");
- else
- printf("NO\n");
- }
- return 0;
- }
- int sushu(int p)
- {
- int i, a = 1;
- for(i = 2; i < p; i++)
- {
- if(p % i == 0)
- {
- a = 0;
- break;
- }
- }
- return a;
- }
- int shuhe(int q)
- {
- int s = 0;
- while(q > 0)
- {
- s = s + q % 10;
- q = q / 10;
- }
- return s;
- }