大家好!所以我几乎完成了一个我开始为学校处理的涉及埃拉托色尼筛的问题。我设法让程序打印出从 2 到 1000 的平方根的所有素数。但是,我的老师要求我使用 CF Gauss 的素数假设(?)。这就是他所说的:CF Gauss 假设 (N) 当 N 接近无穷大时,小于或等于 N 的素数数定义为 (N) = N/loge(N)。这被称为素数假说。在 for 循环中打印素数、指示其序数(1、2、3 等)的计数器和 (N) 的值。
我尝试制作另一个 for 循环,并打印素数,但它对我不起作用!:( 呃。任何帮助将不胜感激!:)
import math
def sieves(N):
x = 1000*[0]
prime = 2
print('2')
i = 3
while (i <= N):
if i not in x:
print(i)
prime += 1
j = i
while (j <= (N / i)):
x.append(i * j)
j += 1
i += 2
print("\n")
def main():
count = 0
for i in range (1000):
count = count + 1
print(sieves(math.sqrt(1000)))
main()