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

猜你喜欢

转载自blog.csdn.net/xiaozhimonica/article/details/83377681
今日推荐