在Python中检查素数的有效方法

时间:2015-09-12 23:03:57

标签: python algorithm

这是我的代码,相当蛮力。寻求更智能的解决方案。我记得在数论中有一些理论来检查一个数字是否是一个效率很高的素数,但是找不到它。任何有聪明才智的人都会受到赞赏。

def isPrimeNumber(self, num):
    i = 2
    while (i <= num / 2):
        if num % i == 0:
            return False
        i = i + 1

    return True
提前谢谢, 林

2 个答案:

答案 0 :(得分:1)

您可以对代码进行一项大而简单的优化,即在达到num的平方根时停止查找除数。

答案 1 :(得分:1)

它提高了性能。并且循环发生直到此数字的square root 你可以试试这个:

import math
def isPrimeNumber(self, num):
    for i in range(2, sqrt(num)):
        if num % i == 0:
            return False

    return True