【发布时间】:2016-04-09 20:16:06
【问题描述】:
检查给定大数是否为素数的最快方法是什么?我说的是大约 10^32 大小的数字。我已经尝试过the great answer by @MarcoBonelli 的算法,即:
from math import sqrt; from itertools import count, islice
def isPrime(n):
return n > 1 and all(n%i for i in islice(count(2), int(sqrt(n)-1)))
但是当用于如此大的数字时,它会给出Stop argument for islice() must be None or an integer: 0 <= x <= sys.maxsize 的错误。那么有什么不同的快速方法呢?
【问题讨论】: