求第n个素数 Python程序
时间: 2023-05-20 18:06:27 浏览: 132
以下是一个求第n个素数的Python程序:
```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 nth_prime(n):
count = 0
num = 2
while count < n:
if is_prime(num):
count += 1
num += 1
return num - 1
n = int(input("请输入要求的素数的位置:"))
print("第", n, "个素数是:", nth_prime(n))
```
你可以输入一个正整数n,程序将返回第n个素数。
相关问题
求素数Python程序
在Python中,我们可以使用多种方法来编写一个简单的素数查找程序。这里展示一种常见的试除法(也称为埃拉托斯特尼筛法)实现的例子:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
# 如果primes[p]还未改变,说明p是素数
if primes[p]:
# 将p的倍数全部标记为合数
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
# 返回大于1且为素数的数字列表
return [p for p in range(2, n) if primes[p]]
# 示例:找出小于50的所有素数
print(sieve_of_eratosthenes(50))
```
另一种更简洁的方式是使用内置的`filter()`函数配合`lambda`表达式和`math.sqrt()`函数,只检查到一个数开平方根即可:
```python
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
def primes_upto(n):
return list(filter(is_prime, range(2, n)))
print(primes_upto(50))
```
用python求第n个质数,输入n,输出第n个质数
可以使用以下代码来求解第n个质数:
```python
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
def nth_prime(n):
count = 0
num = 2
while count < n:
if is_prime(num):
count += 1
num += 1
return num - 1
n = int(input("请输入n:"))
print("第{}个质数为:{}".format(n, nth_prime(n)))
```
首先定义一个`is_prime()`函数,用于判断一个数是否为质数。然后定义`nth_prime()`函数,用于求解第n个质数。初始化count为0,num为2,循环判断num是否为质数,如果是,则count加1,直到count等于n为止。最后返回num-1即可。
运行程序后,输入n的值,即可输出第n个质数的值。
阅读全文