如何获得前100个大于255的素数?

问题描述 投票:-1回答:1

如何获得第一个100素数幂p^m\geq 255 ?,其中p是素数,m是正整数。所需的主要力量p^m\in\{256, 289, 343, 361, 512, 529, 625, 729, 841, 961, 1024, 1331, 1369, 1681, 1849, 2048, 2187, 2197, 2209, 2401, 2809, 3125, 3481, ...\}

MWE: 导入csv

fPm=open('primepm.csv', 'w')
writerPm = csv.writer(fPm)
writerPm.writerow(['P^m','Pm'])

p=2
countpm=0
while p<2^8:
    for m in range(8):
        if (p^m>=256 and p^m<1000):
            writerPm.writerow([str(factor(p^m)),str(p^m)])
            countpm=countpm+1
    p=next_prime(p)
    if countpm==100:
        break

但是该程序无法提供正确的结果。

python csv primes
1个回答
0
投票

我如何获得前255个大于255的素数?

您可以使用Sievesympy)中的类see docs

from sympy import sieve

for n in range(100):
    print(sieve[7+n]**2)

输出:

289
361
529
841
961
1369
1681
1849
2209
2809
3481
3721
4489
5041
5329
6241
6889
7921
9409
10201
10609
11449
11881
12769
16129
17161
18769
19321
22201
22801
24649
26569
27889
29929
32041
32761
36481
37249
38809
39601
44521
49729
51529
52441
54289
57121
58081
63001
66049
69169
72361
73441
76729
78961
80089
85849
94249
96721
97969
100489
109561
113569
120409
121801
124609
128881
134689
139129
143641
146689
151321
157609
160801
167281
175561
177241
185761
187489
192721
196249
201601
208849
212521
214369
218089
229441
237169
241081
249001
253009
259081
271441
273529
292681
299209
310249
316969
323761
326041
332929

7+在那里,因为第七素数是大于255的第一素数。

如果可以动态选择要打印的大于255的素数,可以将100中的range(100)更改为变量。

© www.soinside.com 2019 - 2024. All rights reserved.