下面先给出一个结论:
假设一个合数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 , 那么说明这个整数是合数 , 则排除之;否则就是素数 , 保留;以上收集的素数就是给定的整数范围内的所有的素数 。
Python实现的代码(求给定整数范围内的素数)
验证结果:
推荐阅读
- 梦回大清为什么要赐死小薇
- 苹果x是什么时候停产的,苹果x停售的原因介绍
- 国产动画姜子牙什么时候上线
- 司凤面具掉了有什么后果
- 谢贤演的龙四叫什么电视剧 了解一下
- 醋洗银饰的方法 除了醋还可以用什么
- 化妆往鼻子放的是什么
- 褚璇玑真实身份是什么
- 泰国一夫一妻制吗?
- 跳水是哪个国家发明的 关于跳水的来源介绍