mese @ 2022-04-13 17:25:39
写完提交80分; 改了第一层循环和第二层循环又AC了一个点 再改好像没效果了
#include<bits/stdc++.h>
using namespace std;
bool sushu(int a) {
for(int i=2;i*i<=a;i++)if(a%i==0)return 0;
return 1;
}
int main() {
int n,flag=0;
cin>>n;
for(int i=2; i<=n/3; i++) {
if(sushu(i)) {
for(int j=2; j<=n/2; j++) {
if(sushu(j)) {
for(int l=2; l<=n; l++) {
if(sushu(l)){
if(i+j+l==n){
cout<<i<<' '<<j<<' '<<l;
flag=1;
break;
}
}
}
}
if(flag==1)break;
}
}
if(flag==1)break;
}
return 0;
}
by caramel_qwq @ 2022-04-13 17:26:47
@ABcED
建议加入筛法并替换开方求素数。
by mese @ 2022-04-13 17:33:50
已采纳,哈哈哈
by joy2010WonderMaker @ 2022-04-13 18:29:54
@ABcED 其实您只要卡一点点常就能过了
by mese @ 2022-07-21 13:24:35
@joy2010WonderMaker
谢谢大佬的建议