用python输出1-20里所有的合数
时间: 2024-09-24 22:12:33 浏览: 18
在Python中,我们可以编写一个函数来找出1到20之间的所有合数。合数是指除了1和它本身以外还有其他正因数的自然数。下面是一个简单的示例:
```python
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def find_composites(start, end):
composites = []
for num in range(start, end+1):
if not is_prime(num):
composites.append(num)
return composites
# 找出1到20之间的合数
composites_in_range = find_composites(1, 20)
print("1到20之间的合数有:", composites_in_range)
相关问题
使用python输出100~200的所有素数
在Python中,我们可以使用一个经典的算法——埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出100到200之间的所有素数。以下是实现这一功能的代码:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1) # 初始化一个布尔数组表示所有数都是质数
p = 2
while p * p <= n:
if primes[p]: # 如果p是质数
for i in range(p * p, n + 1, p): # 将p的倍数标记为非质数
primes[i] = False
p += 1
# 打印素数列表
for p in range(100, n+1):
if primes[p]:
print(p)
# 调用函数输出100到200的素数
sieve_of_eratosthenes(200)
```
这段代码首先创建了一个布尔数组,然后通过迭代去除所有的合数,最后保留下来的便是素数。
用python写一个分类质数和合数的程序
当然可以,以下是一个用Python编写的分类质数和合数的程序:
```
num = int(input("请输入一个正整数:"))
if num > 1:
for i in range(2, num):
if (num % i) == 0:
print(num, "是合数")
break
else:
print(num, "是质数")
else:
print(num, "既不是质数也不是合数")
```
该程序首先要求用户输入一个正整数,然后进行判断。如果输入的数大于1,则使用一个循环从2开始逐一判断这个数是否能被2到这个数-1之间的任何一个数整除。如果能被整除,则输出“是合数”;否则,输出“是质数”。如果输入的数小于等于1,则输出“既不是质数也不是合数”。