编写一个实现分解质因数的函数,该函数有一个参数,为一个正整数,要求在函数内部对该参数进行分解,得到从小到大排列的各质因数,并打印出来,同时,函数应返回质因数的总个数。
时间: 2023-12-15 19:05:46 浏览: 145
以下是实现分解质因数的 Python 函数:
```python
def factorize(n):
"""
分解质因数并打印结果,返回质因数的总个数
"""
count = 0 # 记录质因数个数
factors = [] # 记录质因数列表
d = 2 # 从2开始试除
while n > 1:
while n % d == 0:
count += 1
factors.append(d)
n = n / d
d += 1
if d * d > n:
if n > 1:
count += 1
factors.append(n)
break
print("该数的质因数为:", end="")
for i in range(len(factors)):
if i == len(factors) - 1:
print(factors[i])
else:
print(factors[i], end=" × ")
return count
```
这个函数的实现思路是:从2开始试除,如果能整除就将该因数加入列表中,并将原数除以该因数,然后继续试除,直到无法整除。如果试除到的因数平方大于原数,说明原数已经无法再被分解,此时如果原数仍然大于1,说明原数为最后一个质因数,加入列表即可。最后打印质因数列表和总个数。
下面是一个样例输入输出:
```python
n = 120
count = factorize(n)
print("共有%d个质因数" % count)
```
输出:
```
该数的质因数为:2 × 2 × 2 × 3 × 5
共有5个质因数
```
阅读全文