转载请注明出处:忆梦http://blog.csdn.net/yimeng2013/article/details/11822881
题解:本以为特别水,不成想这么坑,不过可以当素数打表的模板
注意:此题说2不是素数,我累个去 ,n<=0时才结束输入 ⊙﹏⊙b汗
#include<cstdio>
#include<cstring>
#define N 20000
int prime[N+100];
void init_prime() //n代表求n以内的素数 prime数组0代表为素数
{
memset(prime, 0, sizeof(prime));
prime[1] = 1;
prime[2] = 1;
int i, j;
for(i = 2; i*i <= N; i++)
{
if(!prime[i])
for(j = i*i; j < N; j += i)
prime[j] = 1;
}
}
int main ()
{
init_prime();
int n,cnt = 1;
while(scanf("%d", &n),n>0)
{
if(prime[n] == 1)
printf("%d: no\n",cnt++);
else
printf("%d: yes\n",cnt++);
}
return 0;
}