代码如下:
#include<string>
#include<iomanip>
#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int n){
for(int i = 2;i <= sqrt(n);i += 1)
{
if(n % i == 0)
{
return false;
}
}
return true;
}
int main(){
int n;
cin>>n;
if(isPrime(n - 4))
{
printf("2 2 %d",n - 4);
return 0;
}
else
{
for(int i = 3;i < n;i += 1)
{
for(int j = i;j < n;j += 1)
{
if(isPrime(i) && isPrime(j) && isPrime(n - i - j))
{
printf("%d %d %d",i,j,n - i - j);
return 0;
}
}
}
}
return 0;
}
跑测试的时候好奇时间复杂度输了20000
结果是:3 19997 0
抱着破罐子破摔的想法提交了之后AC
为什么会变成这样子呢?