python1000到2000判断素数
时间: 2023-05-04 07:01:17 浏览: 62
这道题的意思是:在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]
```