[HDU]2161Primes

http://acm.hdu.edu.cn/showproblem.php?pid=2161

没有什么难度,不过要注意本题2不是素数。

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
bool prime[16005];
void IsPrime()
{
     int i,j,t;     
     memset(prime,true,sizeof(prime));
     prime[0]=prime[1]=false;
     prime[2]=false;
     prime[3]=true;
     for(i=4;i<=16000;i+=2)
         prime[i]=false;
     for(i=3;i<=400;i+=2)
       if(prime[i])
         for(j=i*i;j<=16000;j+=2*i)
            prime[j]=false;
}
int main()
{
    int n,cas=1;
    IsPrime();
    while(scanf("%d",&n)!=EOF)
    {
         if(n<=0)
         break;
         printf("%d: ",cas++);
         if(prime[n]==true)
         printf("yes\n");
         else
         printf("no\n");
    }
}

 

posted @ 2013-08-17 21:26  天际。  阅读(336)  评论(0编辑  收藏  举报