码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 2909

时间:2015-06-11 12:32:45      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<iostream>
 2 #include<stdio.h>
 3 #define M 35000
 4 #include<math.h>
 5 #define N 3800
 6 using namespace std;
 7 
 8 int prime [N];
 9 void give_list();
10 int main()
11 {
12     //freopen("acm.acm","r",stdin);
13     int i;
14     int j;
15     int num;
16     int sum;
17     give_list();
18     while(cin>>num)
19     {
20         sum = 0;
21         if(num == 0)
22             break;
23         for(i = 1; ;++ i)
24         {
25             for(j = i; ;++ j)
26             {
27                 if(prime[i] + prime[j] == num)
28                     ++ sum;
29                 if(prime[i] + prime[j] > num)
30                     break;
31             }
32             if(prime[i] >= num/2)
33             {
34                 break;
35             }
36 
37         }
38         cout<<sum<<endl;
39     }
40 }
41 
42 void give_list()
43 {
44     int i;
45     int j;
46     bool prim1[M];
47     memset(prim1,true,sizeof(bool)*M);
48     prim1[1] = false;
49     for(i = 2; i < sqrt(long double(M))+1; i ++)  
50     {
51         if(prim1[i])
52         {
53             j = 2*i;
54             while(j < M)
55             {
56                 prim1[j] = false;
57                 j += i;
58             }
59         }
60     }
61     j = 1;
62     for(i = 2; i < M; i ++)
63     {
64         if(prim1[i])
65         {
66             prime[j] = i;
67             ++ j;
68         }
69     }    
70 }

 

POJ 2909

标签:

原文地址:http://www.cnblogs.com/gavinsp/p/4568701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!