素数都有哪些 素数质数是什么意思( 二 )
......
所以 , 为了达到合数的表达式的唯一性 , 就人为的将1排除在了素数之外 。
5 , 如何求给定范围内的素数
到这里 , 已经知道了素数和合数 。那么如果想要求某个给定的数范围内的素数有哪些 , 应该怎么求 。
比如 , 如何求10以内的素数?
根据常识 , 可以容易的想到10以内的素数有:2,3,5,7
如果不是10 , 而是100以内的素数呢?
难道是依次的去数 , 2,3,5,7,11,13,17,19...
如果不是100 , 而是1000以内的素数呢?
看来人为的靠自己的理解去数 , 会把自己数晕 , 不是解决问题的根本 。
那么应该怎么去解决?
我认为 , 还是得从素数的概念入手:只能被1和自己本身整除的数 。
也就是说 , 除了1和本身 , 不能被其他数整除的数 。或者说 , 只要找到了一个能够被1和本身之外的数整除 , 那么就可以判定这个数就不是素数 。
下面的目标 , 就是努力去找到这样的数 。
先想一下不是素数的数是什么数?答案很明显 , 就是合数 。合数有什么性质?合数可以表示为若干个素数的乘积 。
既然是要求n以内的素数 , 那么肯定n以内的素数一定是在n以内;n以内的合数也是在n以内 。n以内的合数可以表示为若干个素数的乘积 , 这里的素数也肯定是在n以内 。
那么可以确定的知道n以内的某个合数必会至少能够被n以内的一个素数整除 。如果能够找到这样的能够被n以内的合数整除的更大的素数K , 那么就可以得到这样一组素数集(从2开始 , 更大值是K) , 将n以内的整数 , 依次与这组素数中的素数进行求余运算 , 根据求余结果是否是0 , 来判断整数是否是合数 。即求余的结果不是0的整数就是素数了 。
下面的问题是:已知整数范围n , 如何求得能够被n以内的合数整除的更大的素数?
还是从合数的概念出发 , 一个合数必然可以表示为若干个素数的乘积 。
至于合数分解成的素数的个数多少 , 这个就不确定了 , 可能是2个 , 也可能是3个 , 或者更多 。
下面先给出一个结论:
假设一个合数M可以分解为3个素数的乘积 , M=X1*X2*X3(X1<=X2<=X3) , 那么对M进行开3次方根 , 得到的结果取整数为I , I必然介于M的素数的中间 , 即I>=X1且I<=X3 。以整数I内的素数构成一个素数 G , 那么G中必然存在素数X1;合数M越大 , 那么得到的I就越大 , 因而构成的素数 G中的更大的素数也越大 。设想 , 要使得找到更大的素数 , 那么必然要找到更大的I 。在合数M更大的情况下 , 开方根次数越小 , 则此时找到的I才是更大的 。那么开方次数最小是多少呢?显然就是开2次方根时(虽然开1次方根时 , I更大 , 但此时的M就不是合数 , 而是素数了) 。
那么 , 现在知道了 , 如何求一个给定的整数范围内的素数 了:
首先 , 对给定的整数 , 求平方根 , 得到I1(取整数);
然后 , 找到I1范围内的所有的素数 , 构成一个 G
接着 , 依次将给定的整数范围内的整数 , 对 G的素数 , 依次取模 , 若结果是0 , 那么说明这个整数是合数 , 则排除之;否则就是素数 , 保留;
以上收集的素数就是给定的整数范围内的所有的素数 。
6 , 一个Python求素数的例子
根据上面讨论的 , 现在用Python实现一个程序来求给定的整数范围内的素数 。
文章插图
Python实现的代码(求给定整数范围内的素数)
验证结果:
- 更具人气的蓝牙耳机排行榜10强 国产蓝牙耳机排行有哪些
- 心酸的解释是什么,心酸的句子有哪些?
- 如何推广自己的网站,不花钱的网站推广 *** 有哪些!
- 森林里的益鸟有哪些 益鸟有哪些
- 天使课堂:孩子发音不清怎么办?影响孩子发音的因素有哪些
- 母乳期尽量避免吃哪些食物?
- 蓬莱阁|入仙境寻秀色,看看这仙境里都有哪些“中国传统色”
- 密码|春天的6个节气藏着哪些节气养生密码?
- 贾国龙|西贝服务家庭超1亿人次,贾国龙接下来要做哪些事?
- 华佗|张仲景在华夏百位名人榜单上排第15位,他后人都有谁,现在都干啥