首页 > 解决方案 > 当 t >= 20000 时 True break 不起作用?

问题描述

我正在用 python 编写一个程序,当 n = 0 - 200,000 的任何数字时,它会找到获得素数 (E) 的概率。E = n^2+n+5。但是,当 t = 200,000 时,“while true, break”循环不起作用。这是我的代码:

#import time
#Does E = n^2 + n + 5 always produce prime numbers?
n = 0
t = 0
p = 0
while 3 > 2:
  n2 = n*n
  E = n2 + n + 5
  n = n + 1 
  if E > 1:
    for i in range(2, E):
      if((E % i) == 0):
        print(E, "is not prime.")
        #time.sleep(3)
    else:
      print("Found a prime number!", E)
      #time.sleep(3)
      p = p + 1
  t = t + 1
  if(t >= 200000):
    break

fraction = p/t
percent_int = fraction*100
percent = int(percent_int)
print("The probability of getting a prime number is:", percent)

标签: pythonwhile-loop

解决方案


只是需要很长时间,因为您for i in range(2, E):在 while 循环中运行。

放入print(t)while循环以观察程序的进度以了解需要多长时间。


推荐阅读