它从命令行读取一系列正整数,并打印仅为素数的数字,然后是它们的总和

时间:2017-09-22 10:04:50

标签: python python-3.x

编写一个从命令行读取正整数序列的函数 并打印仅为素数的数字,然后是它们的总和。

开头
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)

但不知道如何继续

1 个答案:

答案 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)