Re: [问题] Python 大数据处理

楼主: MOONY135 (谈无欲)   2015-11-13 11:23:46
※ 引述《decken (HAHAHA~)》之铭言:
: 大家好,
: 写了一个求质数程式(列出1~1000000000之间所有质数):
: http://i.imgur.com/WxDZQun.png?1
: def is_prime(num):
: if num == 2:
: return True
: if not num & 1:
: return False
这不算什么解法 然后我也很久没有上数论了 有错请指教
但理论上要检查是不是质数的话 P = Q*R (Q&R !=1 1 < Q, R < P )
质数的定义是这样的 当P可以被 Q and R整除的话
那他就不是质数 所以在我的定义之下 拿2 ~ P-1当中的所有数字去除P
只要余0的话 那么我们就可以说P不是质数
再来就是我们能不能让check的范围缩小呢?(毕竟2~P-1要检查P-3次)
答案是有的(EX 证明 P > Q^2 这件事 对所有的 Q<P是不可能的就行了)
也就是 Q > sqrt(P)的数字以上就不用check了
(因为如果可以的话 R必定会在这之前让你检查到)
举例来说 你找 101是不是质数 其实你loop只要check到11就可以了
作者: darkgerm (黑骏)   2015-11-13 13:48:00
但如果今天是要列出 1~1e9 间的质数的话,用快筛比较快

Links booklink

Contact Us: admin [ a t ] ucptt.com