| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
好心人帮我看看,哪里错了~~#include <stdio.h> #include <string.h> #include <stdlib.h> #define Maxn 1000005 int prime[80000]; bool f[Maxn]; int pt; void fact() { int i, j; pt = 0; memset(f, false, sizeof(f)); for(i = 4;i <= 1000000;i += 2){ f[i] = true; } f[0] = f[1] = f[2] = true; for(i = 3;i <= 1000000;i++){ if(f[i] == false){ prime[pt++] = i; if(i > 1000)continue; j = i * i; while(j <= 1000000){ f[j] = true; j += i; } } } } int main() { fact(); int n, tag, i, a, b; while(scanf("%d", &n) && n){ tag = 0; for(i = 0;i < pt;i++){ if(prime[i] >= n || n - prime[i] < prime[i]) break; if(f[n - prime[i]] == false && n - prime[i] != prime[i]){ a = prime[i]; tag = 1; break; } } if(tag == 0){ printf("Goldbach's conjecture is wrong.\n"); continue; } b = n - a; printf("%d = %d + %d\n", n, a, b); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator