Primes

HDU 2161 Primes

这里采用 Eratosthenes筛选法

代码如下:

 

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 #define MAX 160001
 6 
 7 bool prime[MAX];
 8 
 9 void IsPrime(){
10     memset(prime, true, sizeof(prime));
11     
12     for(int i=2; i<MAX; i++){
13         if(!prime[i]) continue;
14         
15         for(int j=2; j*i<MAX; j++){
16             prime[j*i] = false;
17         }
18     }
19     
20     prime[1]= prime[2] =false;
21     
22 }
23 
24 int main(int argc, char *argv[])
25 {
26     int n, cas;
27     IsPrime();
28     
29     cas = 0;
30     while(cin>>n && n>0){
31         if(prime[n])
32             cout <<++cas<<": "<<"yes"<<endl;
33         else
34             cout <<++cas<<": "<<"no"<<endl;
35             
36     }
37     return 0;
38 }

 

posted @ 2014-07-27 10:58  算法研究  阅读(205)  评论(0编辑  收藏  举报