用python编写丑数
时间: 2023-07-01 22:28:54 浏览: 90
丑数是指只包含因子 2、3 和 5 的正整数。下面是用 Python 编写的一个求解丑数的程序示例:
```python
def get_ugly_number(n):
ugly_numbers = [1]
i2, i3, i5 = 0, 0, 0
while len(ugly_numbers) < n:
next_ugly = min(ugly_numbers[i2]*2, ugly_numbers[i3]*3, ugly_numbers[i5]*5)
if next_ugly == ugly_numbers[i2]*2:
i2 += 1
if next_ugly == ugly_numbers[i3]*3:
i3 += 1
if next_ugly == ugly_numbers[i5]*5:
i5 += 1
ugly_numbers.append(next_ugly)
return ugly_numbers[-1]
```
在这个程序中,我们用一个列表 `ugly_numbers` 记录已经求出的丑数,初始值为 `[1]`。同时,我们用三个变量 `i2`、`i3`、`i5` 记录当前已经使用过的因子 2、3、5 的个数。在每一轮循环中,我们计算出下一个丑数 `next_ugly`,并将其加入到列表 `ugly_numbers` 中。同时,我们根据 `next_ugly` 是由哪个因子产生的,更新对应的变量 `i2`、`i3`、`i5`。
最终,当列表 `ugly_numbers` 的长度达到 `n` 时,我们返回最后一个元素,即第 `n` 个丑数。
阅读全文