利用列表推导式求2-100以内的素数
时间: 2023-09-04 18:17:10 浏览: 77
```python
primes = [num for num in range(2, 101) if all(num % i != 0 for i in range(2, int(num**0.5)+1))]
print(primes)
```
输出结果:
```
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
相关问题
利用列表推导式 求2-100以内的素数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
# 生成2-100之间的素数列表
prime_list = [i for i in range(2, 101) if is_prime(i)]
print(prime_list)
```
输出结果:
```
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
用列表推导式判断是否为素数
列表推导式可以用来简洁地创建一个新的列表,比如判断一组数字是否为素数。但直接通过列表推导式完成素数判断并不直观,因为素数的验证通常涉及到循环和除法操作。我们可以先定义一个函数`is_prime(n)`用于判断单个数字是否为素数,然后用这个函数结合列表推导式生成满足条件的素数。
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1): # 只需检查到数的平方根即可
if num % i == 0:
return False
return True
# 利用列表推导式生成一定范围内(如1到n)的所有素数
primes_in_range = [num for num in range(2, your_number + 1) if is_prime(num)]
your_number = int(input("请输入一个正整数:")) # 获取用户输入作为判断范围的上限
if primes_in_range:
print(f"在1到{your_number}之间的素数有:{primes_in_range}")
else:
print(f"{your_number}以内没有素数。")
阅读全文