亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
湘西| 曲麻莱县| 报价| 福贡县| 湘乡市| 高雄市| 萍乡市| 江口县| 西青区| 虎林市| 饶河县| 皮山县| 山西省| 库伦旗| 黑水县| 正安县| 上饶县| 循化| 麦盖提县| 宜宾县| 长春市| 拉萨市| 行唐县| 罗田县| 甘孜| 永清县| 临清市| 同仁县| 安泽县| 乡城县| 阳信县| 台中市| 大渡口区| 灵石县| 怀仁县| 崇明县| 卓资县| 闵行区| 黄冈市| 工布江达县| 昌平区|