哥德巴赫猜想
哥德巴赫猜想(Goldbach Conjecture)大致可以分为两个猜想(前者称“强”或“二重哥德巴赫猜想”后者称“弱”或“三重哥德巴赫猜想”):1、每个不小于6的偶数都可以表示为两个奇素数之和;2、每个不小于9的奇数都可以表示为三个奇质数之和。
每个不小于6的偶数都可以表示为两个素数之和
编写一个函数,输出6-100000内所有偶数可以表示为哪两个素数之和,如果一个偶数有多种表示方式,输出任意一种即可。
#include<stdio.h> #include<math.h> const int Max=100010; int a[Max]; void isprime() { for(int i=1;i<Max;i++) a[i]=i; a[1]=0; for(int i=2;i<=sqrt(Max+0.5);i++) { if(a[i]) { for(int j=2;i*j<Max;j++) { a[i*j]=0; } } } } int main() { isprime(); int i,n; while(scanf("%d",&n)!=EOF) { i=3; while(!a[i]||!a[n-i]) { i+=2; } printf("%d %d\n",a[i],a[n-i]); } return 0; }