质数判断(你有珠心算,我有珠心算法)

看过《最强大脑》的小伙伴应该都知道珠心算。尤其是在中国队对阵日本队时,那种紧张的气氛婉如世纪大战一触即发。对于大多数和我一样的普通小老百姓而言就只剩下感叹的份了。
所谓的珠心算其实就是“珠算”和“心算”的结合体。一个庞大的数字在瞬间就能分辨是否是质数,这种计算量要是让我来,怎么也得废上好几本笔记本了。在电影《异次元杀阵》中也用到了质数判断来作为阻拦主角一行人的难题,没看过的可以去补补哦。
那么作为一个码农我今天要讲解的是如何使用代码来瞬间完成大数字的质数判断。代码部分其实很简单,如果没兴趣了解原理的话直接跳到最后看代码就可以了。


一、什么是质数
质数就是只能被1和本身除尽的数。

根据这个特点可以把这个数(n)依次除以2 ~ (n-1)。这样就可以判断数字n是否是质数。但是这种办法显得异常的蠢,它的时间复杂度为O(n)。


二、列举偶数质数
在偶数当中只有2符合质数的特点,所以偶数中也只有一个质数2。

根据这个特点可以在上述方法上进行改进,在依次除以2 ~ (n-1)之前加上一个非偶数判断就能减少一半的工作量。


三、最小偶质数和最小奇质数的最小公约数
最小偶质数2,最小奇质数3(质数的取值范围是大于1的自然数,因此1不能作为最小奇质数)。2和3的最小公约数(它是一个能被若干个整数同时均整除的整数。如果一个整数同时是几个整数的约数,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值