编制一函数,实现将任意一个正整数分解为其最小因子的连乘式。如:8=2*2*2。输入:任意一个正整数,输出:最小因子连乘式。
时间: 2023-11-28 08:47:46 浏览: 123
以下是实现该功能的 Python 代码:
```python
def factorization(n):
factors = []
i = 2
while i * i <= n:
while n % i == 0:
factors.append(i)
n //= i
i += 1
if n > 1:
factors.append(n)
return factors
def min_factorization(n):
factors = factorization(n)
return '*'.join(str(factor) for factor in factors)
# 测试
print(min_factorization(8)) # 输出 "2*2*2"
print(min_factorization(12)) # 输出 "2*2*3"
print(min_factorization(100)) # 输出 "2*2*5*5"
```
函数 `factorization(n)` 实现了将正整数 `n` 分解为其因子的列表。具体地,它从 2 开始尝试每个可能的因子,如果当前因子 `i` 是 `n` 的因子,就将 `i` 加入因子列表中,并将 `n` 除以 `i`。这样不断重复,直到 `n` 不再有大于 1 的因子为止。
函数 `min_factorization(n)` 利用 `factorization(n)` 得到 `n` 的因子列表,然后将其用乘号连接起来,得到最小因子连乘式。
在最后的测试中,我们分别输入了 8、12 和 100 三个正整数,输出了它们的最小因子连乘式。
阅读全文