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 }