大于1的自然数,除了质数就是合数。请用python编程实现输入任意一个数,求小于这个数(不含这个数)的所有合数
时间: 2023-06-04 15:06:31 浏览: 88
以下是Python代码实现:
```python
def find_composite_numbers(num):
composite_numbers = []
for i in range(2, num):
for j in range(2, i):
if i % j == 0:
composite_numbers.append(i)
break
return composite_numbers
num = int(input("请输入一个大于1的自然数:"))
composite_numbers = find_composite_numbers(num)
print("小于{0}的所有合数为:{1}".format(num, composite_numbers))
```
代码解析:
1. 首先定义了一个叫做 `find_composite_numbers` 的函数,该函数接受一个参数 `num`,表示要求小于这个数的所有合数。
2. 函数内先定义了一个空列表 `composite_numbers`,用来存储所有合数。
3. 接着使用两个嵌套的循环来遍历所有小于 `num` 的自然数。
4. 在内层循环中,判断当前数是否为质数,若是则跳过本次循环,否则将其添加到 `composite_numbers` 中,并跳出内层循环。
5. 外层循环结束后,返回所有合数列表 `composite_numbers`。
6. 最后通过 `input` 函数接收一个大于1的自然数,并调用 `find_composite_numbers` 函数来求解所有小于该数的合数,并输出结果。
注意:与要求不冲突的情况下,代码中给出了函数式的实现方式,更加简洁易读。
阅读全文