0

如何sum在 Python 的列表中打印素数?

我是 Python 的新手,因此我可能会犯一个可怕的错误。

请帮忙。

def prime(n):

    i = 2
    c = 0
    for i in range(1,n+1):
        if(n%i == 0):
            c = c+1
    if(c == 2):
        return True
    else:
        return False


def sumprimes(l1):

    l1 = []
    l = len(l1)
    i = 0
    sum = 0
    for i in range(0,l):
        if(prime(l1[i]) is True):
            sum = sum +l1[i]
print(sum)

l1 = [3,4,5,6]

print(sumprimes(l1))

输出应等于 8。

4

4 回答 4

4
def prime(n):

    i = 2
    c = 0
    for i in range(1,n+1):
        if(n%i == 0):
            c = c+1
    if(c == 2):
        return True
    else:
        return False


def sumprimes(l1):

    sum=0
    for x in l1:
        if prime(x):
            sum += x
    return sum

l1 = [3,4,5,6]

print(sumprimes(l1))

使用上面的代码。您需要使用 return 语句来打印函数的结果。并且不需要您的 range() 循环,在 python 中有一种更优雅的方法可以做到这一点,对列表的所有元素使用 for 循环。

于 2019-02-11T15:21:46.533 回答
1

你也可以使用下面的代码来做到这一点。

lst = [1,2,5,7,9,10,12]

def isPrime(x):
    if x == 1:
        return False
    for i in range(2,x-1):
        if x%i == 0:
            return False
    return True


def getPrimeSum(l):
    l = [i for i in l if isPrime(i)]
    return sum(l)

print(getPrimeSum(lst))
于 2019-02-11T15:26:24.220 回答
0
#Check and add into the list of primeval numbers (all primeval number under a specific number)
H = int(input("What the maxium number?: "))
RangeFinding = list(range(3, H+1))
import math
Prime = [2]
for a in RangeFinding:
  x = True
  y = 2
  while x:
    NCanA = math.floor(math.sqrt(a))
    if a %y == 0:
      print(f'{a} is not prime')
      x = False
    else:
      if y > NCanA:
        print(f'{a} is prime')
        Prime.append(a)
        x = False
      else:
        y = y + 1
        x = True
print(Prime)
于 2021-10-08T15:32:05.837 回答
0
#**this function will check weather number is prime or not**
def prime(k):
    i = 2
    j = 0
    for i in range(1,k+1):
        if(k % i == 0):
            j = j + 1
    if(j == 2):
        return True
    else:
        return False
#**this function will add all prime numbers**
def sumOfPrimes(l1):
    sum=0
    for y in l1:
        if prime(y):
            sum += y
    return sum

list1 = [3,4,5,6]

print(sumOfPrimes(list1))
**You Will get output as 8**

解释

  1. 我创建了一个函数 prime() 来检查数字是否为素数。
  2. 我创建了一个函数 sumOfPrime() 将添加所有素数。
  3. list1 4)调用函数sumOfPrime(list1)

我分享了代码和输出程序和输出的屏幕截图

于 2021-10-11T05:31:21.680 回答