将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 ?
参考答案:
这是一个关于质因数分解的问题。质因数分解是将一个正整数分解为若干个质数的乘积。 例如,90 可以分解为 2 × 3 × 3 × 5。
为了解决这个问题,我们可以使用一个简单的算法:
- 从2开始,检查这个数是否是给定数的因数。
- 如果是,则打印这个数,并继续用给定的数除以这个因数,直到给定的数不再能被这个因数整除。
- 然后,增加因数,并重复步骤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
,这正是我们期望的结果。