描述
1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于5的奇数都可以表示成3个质数之和。
这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。
现在请你编一个程序验证哥德巴赫猜想。
输入
一个奇数n(5<n<10^5)n(5<n<105)。
输出
输出三个用空格分隔的质数,如果有多个答案,输出字典序最小的。
输入样例 1复制
119
输出样例1复制
3 3 113
代码:
#include<bits/stdc++.h>
using namespace std;
long long zhi(long long n){
if(n<2){
return 0;
}
long long i;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
long long n;
cin>>n;
for(long long a=2;a<n;a++){
for(long long b=2;b<n;b++){
long long c=n-a-b;
if(zhi(a)==1&&zhi(b)==1&&zhi(c)==1){
cout<<a<<" "<<b<<" "<<c;
return 0;
}
}
}
return 0;
}