编写函数,使用非递归方法对整数进行因数分解。
时间: 2023-04-26 10:02:59 浏览: 396
编写DFS算法的非递归函数
5星 · 资源好评率100%
可以使用循环来实现非递归的因数分解函数。具体步骤如下:
1. 定义一个空列表,用于存储因数。
2. 使用循环从2开始,依次尝试将整数除以当前数,如果能整除,则将当前数加入列表,并将整数更新为除以当前数的结果。
3. 如果当前数不能整除整数,则将当前数加1,继续尝试。
4. 当当前数大于整数的平方根时,将整数本身加入列表,并退出循环。
5. 返回存储因数的列表。
示例代码如下:
```python
def factorize(num):
factors = []
i = 2
while i <= num**.5:
if num % i == :
factors.append(i)
num //= i
else:
i += 1
if num > 1:
factors.append(num)
return factors
```
调用该函数,可以得到整数的因数列表:
```python
>>> factorize(24)
[2, 2, 2, 3]
>>> factorize(100)
[2, 2, 5, 5]
>>> factorize(123456789)
[3, 3, 3607, 3803]
```
阅读全文