Python素数判断1到1000
时间: 2023-12-25 20:27:29 浏览: 23
以下是Python判断1到1000的素数的代码:
```python
# 判断素数函数
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 判断1到1000的素数
for i in range(1, 1001):
if is_prime(i):
print(i, end=' ')
```
输出结果为: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 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541
相关问题
python1000到2000判断素数
这道题的意思是:在Python里,找到1000到2000之间的素数。
回答:
这个问题可以使用质数判定算法来解决,例如埃拉托色尼筛法和欧拉筛法(Sieve of Eratosthenes和Sieve of Euler)。使用这些算法,可以非常高效地找到1000到2000之间的所有素数。以下是一个使用埃拉托色尼筛法的Python代码:
```python
def find_primes(start, end):
# 初始化一个全部为True的列表,表示所有数字都未被筛选
primes = [True] * (end + 1)
# 标记0和1,它们不是质数
primes[0] = primes[1] = False
# 开始筛选,从2开始
for i in range(2, int(end ** 0.5) + 1):
# 如果i是质数,则将i的所有倍数标记为非质数
if primes[i]:
for j in range(i * i, end + 1, i):
primes[j] = False
# 返回指定范围内的所有质数
return [i for i in range(start, end + 1) if primes[i]]
# 查找1000到2000之间的所有质数,并打印出来
print(find_primes(1000, 2000))
```
这段代码将打印出以下结果:
```
[1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1793, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999]
```
python素数判断
以下是Python中判断素数的五种实现方式:
1.暴力判断法
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
```
2.平方根暴力判断法
```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
```
3.素数表筛选法
```python
def get_primes(n):
primes = []
for i in range(2, n+1):
is_prime = True
for j in primes:
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes
```
4.埃拉托斯特尼(Eratosthenes)筛法
```python
def get_primes(n):
primes = [True] * (n+1)
primes[0] = primes[1] = False
for i in range(2, int(n**0.5)+1):
if primes[i]:
primes[i*i: n+1: i] = [False] * len(primes[i*i: n+1: i])
return [i for i in range(n+1) if primes[i]]
```
5.欧拉(Euler)筛法
```python
def get_primes(n):
primes = []
is_prime = [True] * (n+1)
for i in range(2, n+1):
if is_prime[i]:
primes.append(i)
for j in primes:
if i*j > n:
break
is_prime[i*j] = False
if i % j == 0:
break
return primes
```