POJ 2262 Goldbach's Conjecture

 1 #include<stdio.h>
 2 int phi[1000010];
 3 int prime[100000],len;
 4 int euler()
 5 {
 6     int i,j;
 7     len=0;
 8     for(i=0;i<1000010;i++)
 9     phi[i]=0;
10     for(i=2;i<1000010;i++)
11     {
12         if(!phi[i])
13         for(j=i+i;j<1000010;j+=i)
14         {
15            phi[j]=1;
16         }
17         if(phi[i]==0)
18         prime[len++]=i;
19     }
20     /*printf("len=%d\n",len);
21     for(i=0;i<len;i++)
22     {
23         getchar();
24         printf("%d\n",prime[i]);
25     }*/
26 }
27 int main()
28 {
29     int n,i;
30     euler();
31     while(scanf("%d",&n),n)
32     {
33         for(i=0;i<len&&prime[i]<n;i++)
34         {
35             if(!phi[n-prime[i]])
36             {
37                 printf("%d = %d + %d\n",n,prime[i],n-prime[i]);
38                 break;
39             }
40         }
41     }
42     return 0;
43 }
View Code

 

posted @ 2014-04-08 20:51  执着追求的IT小小鸟  阅读(118)  评论(0编辑  收藏  举报