1. 程式人生 > >python學習筆記:判斷是否為質數

python學習筆記:判斷是否為質數

一、常規: 

def isPrime(n):
    if (n < 2):
        return False
    for factor in range(2,n):
        if (n % factor == 0):
            return False
    return True

 二、加速:

        原理:如果n是合數,那麼必然存在一個約數<sqrt(n),另一個約數>sqrt(n)。也就是說,如果在sqrt(n)左側找不到約數,則n必然是質數。

def fasterIsPrime(n):
    if (n < 2):
        return False
    if (n == 2):
        return True
    if (n % 2 == 0):
        return False
    maxFactor = round(n**0.5)
    for factor in range(3,maxFactor+1,2):
        if (n % factor == 0):
            return False
    return True