求助 为什么在评测机上会无输出

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

hjh_cpp @ 2016-01-23 18:31:10

自己测试了很多遍都是有结果的

但是放到评测机上就有7个测试点无输出

[codec ]

#include<iostream>
#include<list>
#include<algorithm>
using namespace std;
int main()
{
    list<int> num;
    num.push_back(2);
    for(int i=3;i<2000;i+=2)
    {
        for(int j=2;i%j!=0;j++)
        {
            if(j*j>i)
            {
                num.push_back(i);
                break;
            }
        }
    }
    int n;
    cin>>n;
    for(list<int>::iterator i=num.begin();i!=num.end();i++)
    {
        for(list<int>::iterator j=num.begin();j!=num.end();j++)
        {
            if(find(num.begin(),num.end(),n-*i-*j)!=num.end())
            {
                cout<<*i<<' '<<*j<<' '<<n-*i-*j;
                i=num.end();
                j=num.end();
                i--;
                j--;
            }
        }
    }
    return 0;
}
[/codec ]

by LRM123 @ 2016-02-02 21:07:36

我的PASCAL也许能帮你:

var
  i1,i2,n:longint;
function zs(n:longint):boolean;
var
  i:longint;
begin
  if (n<>2)and(n mod 2=0) then exit(false);
  for i:=2 to trunc(sqrt(n)) do
      if n mod i=0 then exit(false);
  exit(true);
end;
begin
  readln(n);
  for i1:=2 to trunc(sqrt(n)) do
    for i2:=2 to (n-i1) do
                if zs(i1) then
                    if zs(i2) then
                        if zs(n-i1-i2) then
                        begin
                            writeln(i1,' ',i2,' ',n-i1-i2);
                            halt;
                        end;
end.

|