题目描述
我们定义:如果一个数为素数,且这个数中含有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<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
int flog,t;
int prime[100010];
memset(prime,0,sizeof(prime));
for(int i=2; i<=1000; i++)
for(int j=2; j<=sqrt(i); j++)
{
if(i%j==0)
{
prime[i]++;
}
}
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%d",&n);
flog=0;
int sum;
if(prime[n]==0)
{
while(n!=0)
{
sum=n%10;
if(sum==7||sum==3)
{
printf("YES\n");
flog=1;
break;
}
n=n/10;
}
if(flog==0)
{
printf("NO\n");
}
}
else
printf("NO\n");
}
}
return 0;
}