判断2到n素数python
时间: 2024-03-23 12:44:03 浏览: 41
当然,以下是使用Python实现的代码,同样是使用埃氏筛法:
```
import math
def find_primes(n):
is_prime = [True] * (n+1) # 初始化为True
for i in range(2, int(math.sqrt(n))+1):
if is_prime[i]:
for j in range(i*i, n+1, i):
is_prime[j] = False # 标记非素数
primes = [i for i in range(2, n+1) if is_prime[i]] # 收集所有素数
return primes
n = int(input("请输入n的值:"))
primes = find_primes(n)
print(f"2到{n}之间的素数有:{primes}")
```
需要注意的是,Python中没有bool数组,可以使用列表(List)代替,同样需要初始化为True。此外,Python的列表推导式可以更简洁地收集所有素数。
相关问题
从键盘输入一个正整数n判断n是否为素数python
在Python中,我们可以编写一个简单的函数来判断一个正整数n是否为素数。素数是指大于1且只有两个正因数(1和自身)的自然数。下面是一个判断素数的基本算法:
```python
def is_prime(n):
if n <= 1: # 负数、0和1不是素数
return False
elif n == 2: # 2是最小的素数
return True
elif n % 2 == 0: # 偶数(除了2)不是素数
return False
else:
i = 3 # 我们只需要检查到√n,因为如果n有因子大于它的平方根,那么它一定也有一个小于平方根的因子
while i * i <= n:
if n % i == 0:
return False
i += 2 # 正确的步骤应该是每次加2,跳过所有的偶数
return True
# 输入示例
n = int(input("请输入一个正整数: "))
if is_prime(n):
print(f"{n} 是素数")
else:
print(f"{n} 不是素数")
判断素数Python
以下是判断素数的Python代码示例:
```python
n = int(input())
if n == 1:
print('This is not a prime.')
else:
f = 0
for i in range(2, n):
if n % i == 0:
f = 1
break
if f == 0:
print('This is a prime.')
else:
print('This is not a prime.')
```
这段代码首先接收一个整数作为输入,然后通过循环从2到n-1遍历所有可能的因子。如果找到了一个能整除n的因子,那么f被设置为1,表示n不是素数。最后根据f的值输出相应的结果。
阅读全文