📜  计算N的素因子!(1)

📅  最后修改于: 2023-12-03 15:41:36.987000             🧑  作者: Mango

计算N的素因子!

简介

素因子是指一个正整数中所包含的所有质数因子,例如12的素因子为2和3。这个程序可以帮助你计算一个正整数N的所有素因子。

使用方法
  1. 输入一个正整数N,程序将会输出N的所有素因子。
  2. 若N为质数,则仅会输出N本身。
  3. 若N为负数或0,则会提示输入有误。
  4. 输入非整数时,程序将会报错。
  5. 您可以通过修改代码中的变量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)
输入有误!
总结

该程序可以帮助你快速计算一个正整数的素因子,但需要注意输入的数必须为正整数。