酷代码 AI
菜单
服务商

题目描述 我们把只包含素因子2、3和5的数成为丑数。例如6、8都是丑数,但14不是,因为它包含素因子7。 习惯上,我们把1当作是第一个丑数。 先定义一个判断丑数的函数,利用它输出1∼n之间所有的丑数,并统计出个数。 输入 读入一个整数n1<=n<=1000 , 输出 输出分为两部分: 第一部分,输出1∼ n之间所有的丑数,一行10个整数,每个整数占6个字符。 第二部分, 输出n 以内的丑数个数。 样例输入 复制 100 样例输出 复制 1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36 40 45 48 50 54 60 64 72 75 80 81 90 96 100 34

```python def is_ugly(num): if num <= 0: return False for factor in [2, 3, 5]: while num % factor == 0: num //= factor return num == 1 n = int(input()) ugly_numbers = [] for i in range(1, n + 1): if is_ugly(i): ugly_numbers.append(i) count = len(ugly_numbers) for idx, val in enumerate(ugly_numbers): print(f"{val:6d}", end="") if (idx + 1) % 10 == 0: print() if len(ugly_numbers) % 10 != 0: print() print(count) ``` 该程序先定义 `is_ugly` 函数,通过不断除以 2、3、5 判断最终结果是否为 1 来确认是否为丑数。接着遍历 1 到 n,收集所有丑数并按格式输出,每行 10 个,每个占 6 字符宽度。最后输出丑数总个数。 [2026-01-14 12:23:44 | AI问答 | 244点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多