又是一道不小心发现的水题
验证哥德巴赫猜想,打个素数表就过了,要求差最大, 那就从最小开始找嘛,c 250ms
#include <stdio.h> int prime[1000001]; void getprime() { int i=0,j=0,tmp; for(i=2;i<1000001<<1;++i) { for(j=2;j<=i;++j) { tmp=i*j; if(tmp>1000001) { break; } else { prime[tmp]=1; } } } return; } int main() { int n=0,i=0; getprime(); while(scanf("%d",&n) && n) { for(i=2;i<1000001;++i) { if(!prime[i] && !prime[n-i]) { break; } } printf("%d = %d + %d\n", n, i, n-i); } }