完美素数
Time Limit: 1000MS Memory limit: 65536K
题目描述
我们定义:如果一个数为素数,且这个数中含有7或3,那么我们称这个数为完美素数。素数的定义为:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。我们的任务是判断一个数是不是完美素数,是输出YES,否则输出NO .
输入
输入数据有多组测试用例,每组测试的第一行为一个整数n(1<=n<=100),下面n行每行有一个正整数x(2<=x<=1000)。
输出
每组测试用例输出n行,如果是输出YES,否则输出NO
示例输入
3 7 20 43 2 29 73
示例输出
YES NO YES NO YES
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int pd(int k) { int i; int q=sqrt(k); for(i=2 ; i<=q; i++) { if(k%i==0) return 0; } return 1; } int main() { int n,k; while(~scanf("%d",&n)) { while(n--) { scanf("%d",&k); if(pd(k)) { while(k) { if(k%10==3 || k%10==7) { printf("YES\n"); break; } k=k/10; } if(!k) printf("NO\n"); } else printf("NO\n"); } } return 0; }