python - 当 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)
解决方案
只是需要很长时间,因为您for i in range(2, E):
在 while 循环中运行。
放入print(t)
while循环以观察程序的进度以了解需要多长时间。
推荐阅读
- flutter - 无法从现有项目中创建桌面应用程序支持
- c++ - 交换矢量以释放它
- php - Laravel Livewire 事件(例如点击)不起作用。我正在使用 laravel 7
- java - 根据配置的时间表,给定的触发器永远不会触发 Quartz
- c++ - 为什么在一个翻译单元中定义的函数可以在另一个翻译单元中访问,在该翻译单元中它被前向声明为静态?
- angular - Angular 9. 页面上的同步 *ngFor
- php - 目标类 [Admin\AdminController] 不存在
- java - 分到年、日、小时和分钟转换器
- reactjs - 如何停止componentDidUpdate的无限循环?
- javascript - 从数组中获取值