91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
墨玉县| 台北市| 开远市| 类乌齐县| 福清市| 林芝县| 平凉市| 滦南县| 江都市| 肇源县| 建阳市| 镇赉县| 方正县| 和林格尔县| 博客| 贵州省| 高要市| 郓城县| 岚皋县| 太康县| 南投县| 玉溪市| 扬州市| 富宁县| 陵川县| 含山县| 澜沧| 黑龙江省| 莆田市| 亳州市| 绥芬河市| 汨罗市| 永德县| 剑河县| 萨嘎县| 宁远县| 太仆寺旗| 东辽县| 金昌市| 永登县| 清远市|