mmxingye

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

08 | 函数应用-哥德巴赫猜想问题求解

题目描述

任一个大于等于4的偶数都可以拆分为两个素数之和。
(5.1.40)

输入

一个整数n( 4 <= n <= 200 )

输出

将小于等于n的偶数拆分为2个质数之和,列出所有方案!

样例

输入

10

输出

4=2+2
6=3+3
8=3+5
10=3+7
10=5+5
#include <bits/stdc++.h>
using namespace std;
//判断素数
bool sushu(int n){
bool r = true;//假设是素数
int i;
//循环因子范围,找到因子就不是素数
for(i = 2;i <= sqrt(n);i++){
if(n%i==0){
r = false;
break;
}
//判断特殊情况
if(n <= 1){
r = false;
}
}
return r;
}
//将一个偶数能够拆分素数和的方案罗列
void caixiang(int n){
int i;
for(i = 2;i <= n / 2;i++){
if(sushu(i) == true && sushu(n - i) == true){
cout<<n<<"="<<i<<"+"<<n-i<<endl;
}
}
}
int main(){
/*
将4~n之间的每个偶数,能够拆分素数和的方案罗列
第一步:先实现将一个偶数能够拆分素数和的方案罗列
n=10
2+8 3+7 4+6 5+5
判断思路:循环i=2~n/2,如果i是素数,且n-i是素数
*/
//caixiang(10);
int i,n;
cin>>n;
for(i=4;i<=n;i=i+2){
caixiang(i);
}
getchar();
getchar();
}

posted on   独立树  阅读(154)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示