1 solutions
-
0
难度: 黄
暴力出奇迹。
下文中令 。
先筛出 以内的质数。
注意到题目中需要输出 最大的一组,相当于输出 最小的一组。
对于 内的每个偶数,通过枚举所有质数,来求出这个数对应的解。
时间复杂度我不会算,但目测不会很大,只跑了 。
#include<bits/stdc++.h> using namespace std; int n=1e6,a; int f[1000100],pr[100100],pc; int r[1000100]; int main(){ for(int i=2;i<=n;i++){ if(!f[i]) pr[++pc]=i; for(int j=1;j<=pc;j++){ if(i*pr[j]>n) break; f[i*pr[j]]=1; if(i%pr[j]==0) break; } } for(int i=6;i<=n;i+=2){ for(int j=2;j<=pc;j++){ if(f[i-pr[j]]==0){ r[i]=pr[j]; break; } } } while(1){ scanf("%d",&a); if(a==0) return 0; if(a%2==1){ printf("Goldbach's conjecture is wrong.\n"); } else printf("%d = %d + %d\n",a,r[a],a-r[a]); } }
- 1
Information
- ID
- 202
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- 10
- Tags
- # Submissions
- 6
- Accepted
- 3
- Uploaded By