第一个测试数据是对的,但是一直re

P1579 哥德巴赫猜想(升级版)

成都刘某人 @ 2019-08-03 09:38:20

为什么第一个例子是re但它的测试数据是对的; 加了02优化第一个例子对了,最后一个又错了。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int shu[20001];
    shu[0]=2;
    shu[1]=3;
    int judge[20001];
    int l=2;
    for(int i=2;i*i<=20000;i++)
    {
        for(int j=2;j*i<=20000;j++)
        {
            judge[i*j]=1;
        }
    }
    for(int i=5;i<=20000;i+=2)
    {
        if(judge[i]==0)
        {
            shu[l++]=i;
        }
    }
    shu[0]=2;
    int n;
   cin>>n;
   int k=0;
   for(int i=0;i<l;i++)
   {
       for(int j=0;j<l;j++)
   {
       if(!judge[n-shu[i]-shu[j]]&&n-shu[i]-shu[j]>0)
       {
           cout<<shu[i]<<" "<<shu[j]<<" "<<n-shu[i]-shu[j];
           k=1;
           break;
       }
     }
         if(k)
     break;
   }
    return 0;
}

|