有多種方法可以用Python編寫質(zhì)數(shù)的算法。下面是兩種常見的方法:
方法一:使用除法 該算法通過(guò)逐個(gè)除以小于該數(shù)的所有整數(shù),判斷是否存在能整除該數(shù)的數(shù)。如果存在則不是質(zhì)數(shù),否則是質(zhì)數(shù)。
def is_prime(n):
if n <= 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
# 示例用法
print(is_prime(5)) # 輸出 True
print(is_prime(10)) # 輸出 False
方法二:使用開方 該算法通過(guò)判斷一個(gè)數(shù)是否能被小于等于其平方根的質(zhì)數(shù)整除,判斷是否為質(zhì)數(shù)。這是因?yàn)槿绻粋€(gè)數(shù)可以被大于其平方根的數(shù)整除,那它也一定可以被小于等于其平方根的質(zhì)數(shù)整除。
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
# 示例用法
print(is_prime(5)) # 輸出 True
print(is_prime(10)) # 輸出 False
這兩種算法都可以判斷一個(gè)數(shù)是否為質(zhì)數(shù),但第二種方法的效率更高,特別是當(dāng)需要判斷大量的數(shù)是否為質(zhì)數(shù)時(shí),建議使用第二種方法。