luotong0707 @ 2019-03-05 17:19:21
using namespace std;
int n;
bool zhi(int x); bool b[19999]={0};
int main()
{
scanf("%d",& n);
for(int i=2;i<=199;i++)
for(int j=2;j<=199;j++)
for(int b=2;b<=19999;b++)
if(i+j+b==n&&zhi(i)&&zhi(j)&&zhi(b))
{
printf("%d %d %d",i,j,b); return 0; }
}
bool zhi(int x)
{ if(!b[x])
{
if(x==2) return 1;
for(int i=2;i*i<=x;i++)
if(x%i==0) return 0;
b[x]=1; return 1;}
if(b[x]) return 1;
} 虽然ac了但还是有点 毛病,记忆化搜索该怎么用,还有前两层循环到199可以证明吗