用c语言验证1024个素数范围内的哥德巴赫猜想

74775592fdd34da0b843bd90aceb27af.jpg

 大一上离散数学课的时候,看到了一个题目,讲的是哥德巴赫猜想,一想到哥德巴赫猜想的计算不难,但是计算量比较大,就想到了用c语言验证一下。

思路是这样的:

先考虑哥德巴赫猜想的基本计算方法:大于4的偶数是由两个的奇数素数的和,就想到一个数字如果是和的话一定是比他小的两个数字之和。就先算出范围内的素数,用数组保存起来。然后用遍历循环每个相加。就可以验证哥德巴赫猜想了。

可能遇到的问题:

1.输入值过大时,溢出。

c中int, long ,long long这些类型保存数字的时候因为内存原因是肯定不能无限的,所以就定了1024个数这个来保存这么多个素数。

2.确定最后的成功个数.

因为是范围内的偶数,所以最后的个数一定是(x-6)/2;

但是在上面遍历查找的时候会多出来,比如一个偶数可能有很多种组合,于是我就想到了一个偶数只用有一次成功就行,然后直接break跳出循环就行了。

3.刷新lage标记的状态

因为每次lage被标记之后,如果还需要他来标记,那么就需要lage刷新,所以在最开始的时候需要加lage来刷新。

4.加调试行输出最后的运算结果

在最后的时候不确定运算结果可以加调试行来检查。

(刚大一学到指针写的,如果有需要改进的地方欢迎给出建议。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值