Python不大于n的素数
时间: 2024-09-13 08:16:53 浏览: 26
在Python中,我们可以编写一个函数来找出小于给定整数`n`的所有质数(素数)。素数是指只有两个正因数(1和它本身)的大于1的自然数。下面是一个简单的函数,它使用了埃拉托斯特尼筛法(Sieve of Eratosthenes):
```python
def find_primes(n):
primes = [True] * (n + 1) # 创建一个布尔列表,所有元素初始值设为 True
primes[0], primes[1] = False, False # 0 和 1 不是质数
# 遍历从 2 到 sqrt(n),对于每个数 i,如果它是质数,则将其倍数标记为非质数
for i in range(2, int(n**0.5) + 1):
if primes[i]:
for j in range(i*i, n+1, i): # 跳过已经检查过的数
primes[j] = False
# 返回大于1且为质数的数字
return [i for i, is_prime in enumerate(primes) if is_prime and i > 1]
# 示例
n = 30
result = find_primes(n)
print(f"小于 {n} 的素数有: {result}")
相关问题
python中求不大于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
def max_prime(n):
for i in range(n, 1, -1):
if is_prime(i):
return i
return None
n = int(input("请输入一个整数:"))
result = max_prime(n)
if result:
print("不大于", n, "的最大素数是:", result)
else:
print("不存在不大于", n, "的素数")
```
运行程序后,会提示用户输入一个整数,然后输出不大于该整数的最大素数。其中,`is_prime`函数用于判断一个数是否为素数,`max_prime`函数用于找出不大于n的最大素数。
python找出大于n的最小素数
可以使用如下的 Python 代码来找出大于 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
def find_next_prime(n):
"""找出大于 n 的最小素数"""
num = n + 1
while True:
if is_prime(num):
return num
else:
num += 1
```
在上述代码中,`is_prime()` 函数用于判断一个数是否为素数,`find_next_prime()` 函数用于找出大于 n 的最小素数。