久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

python判斷質(zhì)數(shù)的方法有哪些

118次閱讀
沒有評論

共計(jì) 774 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。

判斷質(zhì)數(shù)的方法有以下幾種:

  1. 簡單的方法是遍歷從 2 到 n - 1 的所有整數(shù),判斷 n 是否能被這些整數(shù)整除。如果 n 能被任何一個(gè)整數(shù)整除,則 n 不是質(zhì)數(shù)。這種方法的時(shí)間復(fù)雜度為 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. 優(yōu)化的方法是只需要遍歷從 2 到 n 的平方根的整數(shù)即可。因?yàn)槿绻?n 能被大于其平方根的整數(shù)整除,那么一定能被小于其平方根的整數(shù)整除。同樣,如果 n 不能被小于其平方根的整數(shù)整除,那么一定不能被大于其平方根的整數(shù)整除。時(shí)間復(fù)雜度為 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(埃拉托色尼篩選法)是一種篩選法,用于找出一定范圍內(nèi)的所有質(zhì)數(shù)。具體步驟是從 2 開始,將所有能被 2 整除的數(shù)標(biāo)記為非質(zhì)數(shù),然后找到下一個(gè)未被標(biāo)記的數(shù),將其作為質(zhì)數(shù),并將其倍數(shù)標(biāo)記為非質(zhì)數(shù),重復(fù)這個(gè)過程直到所有數(shù)都被標(biāo)記。時(shí)間復(fù)雜度為 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

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

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-21發(fā)表,共計(jì)774字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 滦平县| 景洪市| 郓城县| 江永县| 牟定县| 临海市| 玉山县| 东光县| 商洛市| 含山县| 上饶县| 区。| 屯昌县| 宝山区| 自贡市| 定州市| 隆昌县| 扶风县| 东台市| 从化市| 紫云| 东辽县| 钦州市| 定日县| 固原市| 香河县| 杭锦旗| 莆田市| 上虞市| 平度市| 光山县| 钟祥市| 蓬莱市| 汽车| 阿克苏市| 泸水县| 盐亭县| 大同市| 吉木乃县| 紫金县| 友谊县|