题解(A7937.哥德巴赫猜想)
2024-01-06 16:44:21
发布于:北京
61阅读
0回复
0点赞
有注释!
#include<bits/stdc++.h>
using namespace std;
bool is_prime(int num){//判断是不是质数
if(num<2) return 0;
if(num==2 || num==3 || num==5){
return 1;
}
for(int i=2;i<=ceil(sqrt(num));i++){
if(num%i==0){
return 0;
}
}
return 1;
}
int main(){
int n;
cin>>n;//输入
for(int i=4;i<=n;i+=2){//任一大于 2 的偶数
for(int j=2; ;j++){//如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。
int k=i-j;
if(!is_prime(k) or !is_prime(j)){//任一大于 2 的偶数都可写成两个 质数 之和。
continue;
}
printf("%d=%d+%d\n",i,j,k);//输出
break;//已输出,同一个数不需输出2次。
}
}
return 0;//养成好习惯。
}
加入我的团队,一起努力吧,加油!
这里空空如也
有帮助,赞一个