信息学奥赛一本通(c++):1157:哥德巴赫猜想

本文介绍了一个基于哥德巴赫猜想的经典编程题,通过双层for循环暴力穷举的方法来验证并展示6到100之间的偶数如何能够表示为两个素数之和。此外,还介绍了哥德巴赫猜想的历史背景及其重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目

1157:哥德巴赫猜想
时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

        哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。

【输入】

(无)

【输出】

分行输出:

例如:

6=3+3

8=3+5

...

(每个数只拆开一次,请保证第一个加数最小)

【输入样例】

(无)

【输出样例】

(无)

二、思路

        根据定义双层for循环暴力穷举 判断 j 和  i-j 是否同时为素数
三、代码

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int  ss(int x)	
{
	for(int i=2;i<x;i++)
	{
		if(x%i==0)  
		return 0;	
	}
	return 1;
}

int main()
{
	for(int i=6;i<=100;i+=2)	
	{
		for(int j=2;j<i;j++)	
		{
			if( ss(j) && ss(i-j) )	
			{
				cout<<i<<"="<<j<<"+"<<i-j<<endl;
				break; 
			}
		}
	}
}


四、知识点

哥德巴赫猜想  世界近代三大数学难题之一 

        1742年在给欧拉的信中提出了以下猜想:任一大于2的整数都可写成三个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,但是一直到死,欧拉也无法证明。因现今数学界已经不使用“1也是素数”这个约定,原初猜想的现代陈述为:任一大于5的整数都可写成三个质数之和。(n>5:当n为偶数,n=2+(n-2),n-2也是偶数,可以分解为两个质数的和;当n为奇数,n=3+(n-3),n-3也是偶数,可以分解为两个质数的和)欧拉在回信中也提出另一等价版本,即任一大于2的偶数都可写成两个质数之和。常见的猜想陈述为欧拉的版本。把命题"任一充分大的偶数都可以表示成为一个素因子个数不超过a个的数与另一个素因子不超过b个的数之和"记作"a+b"。1966年陈景润证明了"1+2"成立,即"任一充分大的偶数都可以表示成二个素数的和,或是一个素数和一个半素数的和"。

        常见的猜想陈述为欧拉的版本,即任一大于2的偶数都可写成两个素数之和,亦称为“强哥德巴赫猜想”或“关于偶数的哥德巴赫猜想”。

        从关于偶数哥德巴赫猜想,可推出:任何一个大于7的奇数都能被表示成三个奇质数的和。后者称为“弱哥德巴赫猜想”或“关于奇数的哥德巴赫猜想”。若关于偶数的哥德巴赫猜想是对的,则关于奇数的哥德巴赫猜想也会是对的。2013年5月,巴黎高等师范学院研究员哈洛德·贺欧夫各特发表了两篇论文,宣布彻底证明了弱哥德巴赫猜想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值