#657: 不知道哪裡寫的太爛~請各位幫忙一下


bird (GG)

學校 : 长郡中学
編號 : 2681
來源 : [111.255.206.95]
最後登入時間 :
2010-10-23 20:18:46
c050. 00453 - Goldbach's Conjecture -- UVa543 | From: [140.117.182.115] | 發表日期 : 2008-10-05 21:41

#include<iostream>
#include<cmath>
#define max 100000
using namespace std;
int prime(int *a,int n)
{
    int flag=1,k=0;
    for(int i=2;i<=n;i++){
        flag=1;
        for(int j=1;j<=sqrt((double)i);j++){
            if(i%j==0 && j!=1){
            flag=1;break;}
            else
            flag=0;
        }
        if(flag==0)
        a[k++]=i;
    }
    return k;
}
bool isprime(int*a,int p)
{
    int flag=0;
     for(int j=2;j<sqrt((double)p);j++){
        if(p%j==0){
        flag=0;break;}
        else
        flag=1;
    }
    if(flag==1||p==2||p==3)
    return 1;
    else
    return 0;
}
int main()
{
    int n;
    while(cin>>n)
    {
        int a[max+1],k,p,flag=0;
        k=prime(a,n);
        for(int i=k-1;i>=0;i--)
        {
            p=n-a[i];
            if(isprime(a,p)){
            flag=1;
            cout<<n<<"="<<p<<"+"<<a[i]<<endl;
            break;
            }
        }
        if(flag!=1)
        cout<<"Goldbach's conjecture is wrong."<<endl;
    }
}
 
ZeroJudge Forum