📅  最后修改于: 2023-12-03 15:41:36.987000             🧑  作者: Mango
素因子是指一个正整数中所包含的所有质数因子,例如12的素因子为2和3。这个程序可以帮助你计算一个正整数N的所有素因子。
程序使用了试除法寻找N的素因子,具体实现如下:
def prime_factors(N):
"""函数prime_factors用于计算正整数N的所有素因子"""
factors = []
# 试除法寻找N的素因子
while N % 2 == 0:
factors.append(2)
N //= 2
for i in range(3, int(N ** 0.5) + 1, 2):
while N % i == 0:
factors.append(i)
N //= i
# 若N不为1,则N本身也是一个素因子
if N != 1:
factors.append(N)
return factors
程序首先使用while循环不断除以2,找到N中的所有2的因子。然后使用for循环从3到sqrt(N)依次试除奇数,找到N中的所有奇数因子。最后判断N是否为1,若不为1则N本身也是一个素因子。
>>> prime_factors(12)
[2, 2, 3]
>>> prime_factors(17)
[17]
>>> prime_factors(-5)
输入有误!
>>> prime_factors(3.14)
输入有误!
该程序可以帮助你快速计算一个正整数的素因子,但需要注意输入的数必须为正整数。