任意输入20个2~500之内的数放在同一列表中,删除列表中所有素数并输出
时间: 2024-01-22 07:18:50 浏览: 62
以下是 Python 代码实现:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
nums = [int(x) for x in input("请输入20个2~500之间的数字,以空格分隔:").split()]
nums = [x for x in nums if not is_prime(x)]
print(nums)
```
代码思路:
1. 定义一个判断素数的函数 `is_prime`,如果一个数小于 2 或者能被 2 到其平方根范围内的数整除,那么它不是素数。
2. 用列表推导式将输入的数字转换成整数型列表 `nums`。
3. 用列表推导式将 `nums` 中所有的素数删除。
4. 输出不含素数的列表 `nums`。
相关问题
任意输入20个2~500之内的数放在同一列表中 删除列表中的所有素数并输出
好的,可以使用以下Python代码实现:
```python
def is_prime(n):
"""判断是否为素数"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
nums = input("请输入20个2~500之间的数(用空格分隔):").split()
nums = list(map(int, nums))
# 删除素数
for num in nums[:]:
if is_prime(num):
nums.remove(num)
# 输出结果
print("删除素数后的列表为:", nums)
```
示例输出:
```
请输入20个2~500之间的数(用空格分隔):2 5 8 13 21 27 33 46 51 67 72 89 99 103 156 200 245 309 400 499
删除素数后的列表为: [8, 21, 27, 33, 46, 51, 72, 156, 200, 245, 309, 400]
```
阅读全文