跳到主要内容

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 ?

参考答案:

这是一个关于质因数分解的问题。质因数分解是将一个正整数分解为若干个质数的乘积。 例如,90 可以分解为 2 × 3 × 3 × 5。

为了解决这个问题,我们可以使用一个简单的算法:

  1. 从2开始,检查这个数是否是给定数的因数。
  2. 如果是,则打印这个数,并继续用给定的数除以这个因数,直到给定的数不再能被这个因数整除。
  3. 然后,增加因数,并重复步骤1和2,直到给定的数变为1。

现在,我们可以开始编写代码来实现这个算法。

def prime_factors(n):
    i = 2
    factors = []
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors
def print_prime_factors(n):
    factors = prime_factors(n)
    print(f"{n}=", end="")
    for i in range(len(factors)):
        if i != len(factors) - 1:
            print(f"{factors[i]}×", end="")
        else:
            print(f"{factors[i]}")
# 测试代码
print_prime_factors(90)

运行这段代码,你应该可以看到输出:90=2×3×3×5,这正是我们期望的结果。