为什么显示错误答案?

时间:2019-05-25 07:30:42

标签: c++11

问题:UVA 543 显示错误答案

#include<bits/stdc++.h>
using namespace std;
    int a[10000001],i,j,n;
    vector<int> prime;

main()
{


    for(i=2;i<=1000000;i++)
        a[i]=1;
    for(i=2;i<=1000;i++)
    {
        if(a[i])
        {
            for(j=i*i;j<=1000000;j+=i)
                a[j]=0;
        }
    }
    a[0]=a[1]=a[2]=0;
    for(j=3;j<=1000000;j++)
        if(a[j])
        prime.push_back(j);
        int n=-1;
        int flag=1;
        while(n!=0)
        {
            cin>>n;

          for(i=0;prime[i]<=n;i++)
        {
            for(j=0;prime[j]<=n;j++)
                if(prime[i]+prime[j]==n)
                {
                    flag=0;

                        cout<<n<<" = "<<prime[i]<<" + "<<prime[j]<<endl;
                        cin>>n;
                }

        }
        if(flag==1)
            cout<<"'Goldbach's conjecture is wrong.'"<<endl;


        }



}

我应该是正确的。我无法确定问题出在哪里。但是提交后仍然显示错误答案。有人可以帮我确定一下实际问题吗?还是有任何逻辑错误?

0 个答案:

没有答案