【发布时间】:2016-08-26 16:59:53
【问题描述】:
我正在寻找在超过未知变量n 之前可以加在一起的特定质数数。 k 是素数的数量。
is_prime() 是一个函数,如果参数是素数则返回 True,否则返回 False。
我的尝试:
i = 1
total = 2
k = 0
while total <= n:
i += 1
if is_prime(i):
k += 1
total += i
随着n 的值变大,我的代码开始不起作用。我希望k 只会在is_prime 返回True 时增加,而total 将是一个运行总数,以确保素数的总和不超过n。
如何使用 while 循环、for 循环或 if/elif/else 解决这个问题,而不使用其他函数,例如 sum()?
【问题讨论】:
-
不工作怎么办?我觉得很好。时间会不会太长?也许
is_prime太慢了,它是如何工作的?您也可以每次将i增加 2 以加快速度。你应该从i = 3开始,因为total = 2开始。
标签: python loops python-3.x while-loop primes