编写一个从命令行读取正整数序列的函数 并打印仅为素数的数字,然后是它们的总和。
以
开头import math
def is_prime(n):
if n % 2 == 0 and n > 2:
print(False)
else:
print (all(n % i for i in range(3, int(math.sqrt(n)) + 1, 2)))
is_prime(4)
但不知道如何继续
答案 0 :(得分:0)
您需要更改该功能,以便返回该数字是否为素数,而不是打印它。
import math
def is_prime(n):
if n % 2 == 0 and n > 2:
return False
else:
return (all(n % i for i in range(3, int(math.sqrt(n)) + 1, 2)))
然后你可以遍历参数,检查它们是否为素数,然后将它们加到总和中。
import sys
total_prime = 0
for arg in sys.argv[1:]:
n = int(arg)
if (is_prime(n)):
print('Prime: ', n)
total_prime += n
print('Total: ', total_prime)