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

溫馨提示×

python判斷素數的方法有哪些

小億
91
2023-11-20 13:08:09
欄目: 編程語言

判斷一個數是否為素數的方法有以下幾種:

  1. 暴力法:對于每個大于1且小于該數的整數,判斷該整數能否整除該數。如果存在能整除的整數,則該數不是素數;否則,該數是素數。這種方法的時間復雜度是O(n)。
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True
  1. 優化暴力法:在判斷能否整除時,可以只判斷小于等于√n的整數。因為如果存在大于√n的整數能整除n,那么一定存在小于√n的整數能整除n。這種方法的時間復雜度是O(√n)。
import math

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True
  1. Sieve of Eratosthenes(埃拉托斯特尼篩法):先假設所有數都是素數,然后從2開始,將所有2的倍數標記為合數,再從3開始,將所有3的倍數標記為合數,以此類推,直到√n。標記完成后,剩下未被標記的數即為素數。這種方法的時間復雜度是O(nloglogn)。
def sieve_of_eratosthenes(n):
    is_prime = [True] * (n + 1)
    is_prime[0] = is_prime[1] = False
    p = 2
    while p * p <= n:
        if is_prime[p]:
            for i in range(p * p, n + 1, p):
                is_prime[i] = False
        p += 1
    primes = []
    for i in range(2, n + 1):
        if is_prime[i]:
            primes.append(i)
    return primes

以上是一些常用的判斷素數的方法,不同方法的效率不同,可以根據具體需求選擇合適的方法。

0
桃江县| 灯塔市| 阳城县| 栖霞市| 将乐县| 永丰县| 东方市| 称多县| 长泰县| 望奎县| 永寿县| 庆城县| 拉萨市| 溧阳市| 泰兴市| 丹阳市| 临泉县| 彭山县| 乐都县| 丰县| 驻马店市| 南木林县| 景宁| 衡阳县| 晋宁县| 甘德县| 江安县| 黔江区| 浦城县| 凤山市| 紫阳县| 新乐市| 东安县| 辉南县| 太仓市| 凉城县| 白玉县| 乌拉特后旗| 新密市| 甘南县| 英山县|