1775: 和尚特烦恼1——是不是素数
Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 565 Solved: 194
Submit Status Web Board
Description
最近和尚因为一件事特烦恼。有一位施主向和尚询问一个正整数是不是素数的问题。你愿意帮助和尚解决这个烦恼吗?
Input
输入数据有多组(以EOF结束)。每组数据首先输入一个整数n(n<100). 然后有n个正整数。(每个正整数<= 100000)。
Output
对于每个正整数,如果是素数则输出"Yes",如果不是输出"No"
Sample Input
2
3
6
3
5
8
13
Sample Output
Yes
No
Yes
No
Yes
#include<stdio.h>
#include<string.h>
#define N 100010
int p[N];
bool pp[N];
int pnum;
int getp()
{
int i,j;
memset(pp,false,sizeof(pp));
for(i=2;i<N;i++)
{
if(!pp[i])
p[pnum++]=i;
for(j=0;j<pnum&&p[j]*i<N;j++)
{
pp[p[j]*i]=true;
if(i%p[j]==0)
break;
}
}
pp[0]=pp[1]=true;
}
int main()
{
getp();
int t,n;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%d",&n);
if(pp[n])
printf("No\n");
else
printf("Yes\n");
}
}
return 0;
}