成都刘某人 @ 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;
}