#1493 : 歌德巴赫猜想

思路:我们可以把1000000以内的素数都找出来,然后标记,for一遍就OK了

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[1000000];
 4 int b[1000000];
 5 
 6 int main(){
 7     int l=0;
 8     for(int i=2;i<=1000000;i++){
 9         if(a[i]==0)
10             b[i]=1;
11         else continue;
12         for(int j=i+i;j<=1000000;j+=i)
13             a[j]=1;
14     }
15     int n;
16     scanf("%d",&n);
17     for(int i=1;i<=n;i++){
18         if(b[i]==1&&b[n-i]==1){
19             printf("%d %d\n",i,n-i); return 0;
20         }
21     }
22 }

 

posted on 2017-06-08 09:30  hhhhx  阅读(179)  评论(0编辑  收藏  举报

导航