在Python中,你可以使用列表推导式来生成一个包含自然数0到n的列表,然后使用一个函数来删除其中的素数。以下是一个示例代码:
from math import sqrt
def is_prime(num):
if num < 2:
return False
for i in range(2, int(sqrt(num)) + 1):
if num % i == 0:
return False
return True
n = int(input("请输入一个自然数n:"))
生成包含0到n的自然数列表
numbers = list(range(n + 1))
删除列表中的素数
non_primes = [num for num in numbers if not is_prime(num)]
输出列表中的元素个数
print("非素数列表:", non_primes)
print("元素个数:", len(non_primes))
这段代码首先定义了一个`is_prime`函数,用于检查一个数是否为素数。然后,它接收用户输入的自然数`n`,生成一个包含0到n的自然数列表,并使用列表推导式删除其中的素数。最后,它输出非素数列表及其元素个数。