中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

python判斷質數的方法有哪些

小億
95
2023-10-21 22:00:06
欄目: 編程語言

判斷質數的方法有以下幾種:

  1. 簡單的方法是遍歷從2到n-1的所有整數,判斷n是否能被這些整數整除。如果n能被任何一個整數整除,則n不是質數。這種方法的時間復雜度為O(n)。
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True
  1. 優化的方法是只需要遍歷從2到n的平方根的整數即可。因為如果n能被大于其平方根的整數整除,那么一定能被小于其平方根的整數整除。同樣,如果n不能被小于其平方根的整數整除,那么一定不能被大于其平方根的整數整除。時間復雜度為O(sqrt(n))。
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True
  1. Sieve of Eratosthenes(埃拉托色尼篩選法)是一種篩選法,用于找出一定范圍內的所有質數。具體步驟是從2開始,將所有能被2整除的數標記為非質數,然后找到下一個未被標記的數,將其作為質數,并將其倍數標記為非質數,重復這個過程直到所有數都被標記。時間復雜度為O(nloglogn)。
def sieve_of_eratosthenes(n):
    primes = [True] * (n + 1)
    primes[0] = primes[1] = False
    p = 2
    while p * p <= n:
        if primes[p]:
            for i in range(p * p, n + 1, p):
                primes[i] = False
        p += 1
    return primes

這些方法可以根據具體情況選擇使用。如果只需要判斷一個數是否為質數,可以使用第一種或第二種方法。如果需要找出一定范圍內的所有質數,可以使用第三種方法。

0
河曲县| 昂仁县| 利辛县| 奉贤区| 庐江县| 清河县| 灵武市| 澄迈县| 蒙自县| 桓台县| 滁州市| 台南县| 文水县| 株洲市| 马龙县| 昌平区| 昆山市| 罗田县| 黄石市| 岑溪市| 东源县| 扶风县| 临澧县| 诸城市| 兰考县| 睢宁县| 屏边| 定安县| 泌阳县| 北安市| 屏东县| 雷山县| 汶上县| 家居| 通城县| 顺昌县| 察隅县| 镇赉县| 盐池县| 和林格尔县| 山东省|