目录
前言介绍:
今天带来一道小练习是著名的哥德巴赫猜想(偶数猜想部分),那么,在开始之前,就先为大家简单介绍一下,何为哥德巴赫猜想。(本题出自洛谷)
哥德巴赫猜想时著名德国数学家哥德巴赫于1742年提出的一种猜想,它的主题分为大致两个方向,奇数猜想和偶数猜想,而今天我们要实现的就是偶数猜想部分,对于偶数猜想部分,它的内容是,对于任意一个大于等于4的偶数,都一定是两个质数的和,而本题实现的就是在此基础上,找出子质数最小的一种情况并打印,那么,了解过后就让我们进入正题吧。
一.思路整理:
我们知道,质数是从2开始的,因数只有1和本身的数,那么,对于任意一个大于等于4的偶数,他的拆分情况可能有很多种,所以,理列出每种情况并比较这种想法无异于大海捞针,所以,我们不妨换种思路来看。
既然,他要我们列出含最小子质数情况,而数字也是从小变大的,所以,我们可以让每个质数,从小到大被这个偶数减去,并得到他们的差,而,题目要求必须两个子数都为质数,所以,此时,我们只需要对得到的差进行判断即可,如果差也为质数,那就直接打印即可,如果不是,那就继续上述循环即可,那么大致的思路有了,接下来,就是完整的代码过程了。
二.代码实现:
1.质数判断:
以上就是一个简单的质数判断方法,这里面我们引用了一个函数叫开平方函数也就是sqrt函数,他的功能就是对一个实数进行开平方,质数因数只有一和本身,所以,我们令i从2开始,但为什么要小于n的开平方呢?因为,对于任何一个非质数数字,我们总能在小于它开平方的数中,找到他的因数,而对于质数这个情况是不成立的,故而,我们只需要让i<=n的开平方即可。(温馨提示:使用sqrt函数需包含<math.h>这个数学头文件。
2.主函数部分:
这部分没有什么细节问题,所以,我们接下来重点看自定义函数部分 。
3.函数定义及功能实现:
(1).找出最小子质数:
(2).取差值并判断差值是否为质数:
(3).循环的结束/继续,与函数的返回:
总结(结语):
以上就是今日份小题的代码实现,此题重点在于如何获取最小子质数和质数判断两个部分,那么,如果有不足之处和更好的方法还请各位多多指教!(每日一题不只是单纯的一篇博客,更重要的是其中的复习回顾和思路再整理,所以,如果各位喜欢还请多支持一下,感谢!)