我需要编写一个程序,用户输入数字并在用户输入0时停止,他们应该看到哪个数字是质数,并且仅将质数求和。
我写了它,但是即使数字不是素数也算在内。
请告知
答案 0 :(得分:1)
首先,您将定义放入while循环中,这不会破坏您的代码,但会大大降低其速度。
其次,您使用诸如if False
之类的语句,该语句将始终返回False
并且代码将无法运行
因此,不要使用if False
来尝试if not prime(num)
,而是将else
的另一半声明。您甚至不需要sum_of_primes = 0 +sum_of_primes
,只需删除它即可,最后可以将if-else
替换为:
if prime(num):
sum_of_primes = sum_of_primes + num