洛谷新手村的一天--关于验证歌德巴赫猜想的题解

题目描述
现在请你编一个程序验证哥德巴赫猜想。

先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数。

输入输出格式
输入格式:
仅有一行,包含一个正奇数n,其中9<n<20000

输出格式:
仅有一行,输出3个质数,这3个质数之和等于输入的奇数。相邻两个质数之间用一个空格隔开,最后一个质数后面没有空格。如果表示方法不唯一,请输出第一个质数最小的方案,如果第一个质数最小的方案不唯一,请输出第一个质数最小的同时,第二个质数最小的方案。

刚拿到手时,蒟蒻的内心是蒙的,对于质数分解是不大熟悉,所以就选择了看大佬的题解,其中有一道还是很容易理解的,在这里记一下思路。

抓住的关键点为奇数。在此基础上进行了优化。

奇数=奇数+奇数+奇数

1.我们选择最小的奇质数3作为第一位开始循环。
2.用i开始循环,判断是否为奇数且为质数。
3因为题设要求第二位大于第一位,扫来旮旯 选择j=i开始简化一下;
同上一步判断奇数与质数
4最后偷个懒,直接n-i-j判断是否为奇数和质数即可;

奇数=偶数+偶数+奇数

这里其实挺容易,可我当时就是不知道怎么开始。
最小的偶质数为2;那么
结论还不简单 2 2 n-4;
我真傻,真的。

鉴于这里判断质数用的多,可以直接写一个函数作为判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值