【发布时间】:2015-03-06 01:05:51
【问题描述】:
我目前已将 ↓ 设置为我的 randprime(p,q) 函数。有什么方法可以通过 genexp 或 listcomp 之类的方法来压缩它?这是我的功能:
n = randint(p, q)
while not isPrime(n):
n = randint(p, q)
【问题讨论】:
-
似乎最好生成一个介于
p和q之间的素数列表,然后从该列表中随机选择一个。 -
您可以通过将最低位设置为 1 来增加一个数字成为素数的机会,从而使其成为奇数 - 只有一个偶素数,即 2。事实上,除素数之外的所有素数2 和 3 要么低于 1,要么高于 6 的倍数。
-
我讨厌有人在不说明原因的情况下对问题投反对票,因为如果 OP 不知道问题出在哪里,他就无法解决它。
-
@HunterMcMillen,这取决于 p & q 的大小。对于较大的数字,这将更有效。此外,如果你正在做一个数字筛(生成素数的最简单方法),那么你需要从 1 开始。
-
拜托各位,这个问题缺乏特异性,这里的很多来回都是由此产生的。你能责怪那个而不是其他回答者吗?
标签: python random generator list-comprehension primes