Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

Tôi bị tấn công và cần giúp đỡ với điều này .. Tôi muốn tìm tổng số số nguyên tố từ một danh sách số nguyên nhất định. Dưới đây là một vài trường hợp thử nghiệm cho cùng.

n([3,3,1,13])

19

n([2,4,6,9,11])

13

n([-3,0,1,6])

0

Mã mà tôi đã viết như sau nhưng nó không thành công với các trường hợp kiểm tra ở trên ..

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

OHAD EYTAN

7,6391 Huy hiệu vàng21 Huy hiệu bạc31 Huy hiệu đồng1 gold badge21 silver badges31 bronze badges

Khi được hỏi ngày 2 tháng 8 năm 2016 lúc 22:07Aug 2, 2016 at 22:07

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

Phần này là sai:

        for j in range(2, int(num**0.5)+1):
            if num%j != 0:
                sum1 = sum1 + num

Bạn đang tổng hợp

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
5 cho mỗi số trong phạm vi không phân chia. Bạn nên tổng hợp nếu tất cả chúng không chia.all of them didn't divide.

Cách đơn giản để làm điều này là:

        prime = True
        for j in range(2, int(num**0.5)+1):
            if num%j == 0:
                prime = False
                break
        if prime:
            sum1 = sum1 + num

Hoặc theo một cách pythonic hơn bằng cách sử dụng

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
6:

        if all(num%j != 0 for j in range(2, int(num**0.5)+1)):
            sum1 = sum1 + num

Graham

7.21317 Huy hiệu vàng58 Huy hiệu bạc83 Huy hiệu đồng17 gold badges58 silver badges83 bronze badges

Đã trả lời ngày 2 tháng 8 năm 2016 lúc 22:20Aug 2, 2016 at 22:20

Ohad Eytanohad EytanOhad Eytan

7,6391 Huy hiệu vàng21 Huy hiệu bạc31 Huy hiệu đồng1 gold badge21 silver badges31 bronze badges

2

Khi được hỏi ngày 2 tháng 8 năm 2016 lúc 22:07

def isprime(x):
    # Replace this with your code
    # separate function so it can have its own tests
    return x in [3, 13, 11, 2]

def sum_prime_numbers_in_list(l):
    return sum([x for x in l if isprime(x)])

if 19 != sum_prime_numbers_in_list([3, 3, 1, 13]):
    raise ValueError
else:
    print 'pass'

if 13 != sum_prime_numbers_in_list([2, 4, 6, 9, 11]):
    raise ValueError
else:
    print 'pass'

if 0 != sum_prime_numbers_in_list([-3, 0, 1, 6]):
    raise ValueError
else:
    print 'pass'

Phần này là sai:Aug 2, 2016 at 22:42

Bạn đang tổng hợp

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
5 cho mỗi số trong phạm vi không phân chia. Bạn nên tổng hợp nếu tất cả chúng không chia.Kenny Ostrom

Cách đơn giản để làm điều này là:2 gold badges18 silver badges29 bronze badges

lower = int(input("Enter lower range: "))
upper = int(input("Enter upper range: "))
lst=[]
print("Prime numbers between",lower,"and",upper,"are:")

for num in range(lower,upper + 1):

   if num > 1:
       for i in range(2,num):
           if (num % i) == 0:

               break
       else:
           print(num)
           lst.append(num)
print(lst)
sum=0
for i in lst:
    sum=sum+i
print('sum of all prime numbers=%d'%sum)

Hoặc theo một cách pythonic hơn bằng cách sử dụng

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
6:Mar 8, 2019 at 6:32

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

def sum_primes(a):
    sum = 0
    for num in a:  
       if num > 1:  
           for i in range(2,num):  
               if (num % i) == 0:  
                   break  
           else:  
               sum = sum + num
    if sum < 1:
        print("sum_primes(" + str(a) + ") --> " + "None")
    else:
        print("sum_primes(" + str(a) + ") --> " + str(sum))
sum_primes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
sum_primes([2, 3, 4, 11, 20, 50, 71])
sum_primes([])

#code by Rushabh Koradia

GrahamMay 6, 2021 at 5:10

1

7.21317 Huy hiệu vàng58 Huy hiệu bạc83 Huy hiệu đồng

def sumprimes(n):
sum1 = 0
for i in range(0,len(n)):
    num = n[i]
    if num > 1:
        prime = True
        for j in range(2, int(num**0.5)+1):
            if num%j == 0:
                prime = False
                break
        if prime:
            sum1 = sum1 + num
        #else:
        #    sum1 = 0
return(sum1)

Đã trả lời ngày 2 tháng 8 năm 2016 lúc 22:20Aug 4, 2016 at 13:57

2

> def sumprimes(n):
    sum=0
    fact=[]
    for i in range (0,len(n)):
        num=n[i]
        if num>1:
            fact=[]
            for j in range (1,num+1):
                if num%j==0:
                    fact=fact+[j]
        if fact==[1,num]:
            sum=sum+num


    return(sum)

Ohad Eytanohad EytanFeb 9, 2017 at 14:08

1

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
0

Đừng cố gắng làm mọi thứ trong một chức năng. Tôi đã tách ra phần còn lại của logic, nhưng tôi sẽ để lại cho bạn:Feb 13, 2019 at 17:43

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

1

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
1

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

Đã trả lời ngày 2 tháng 8 năm 2016 lúc 22:42

Kenny Ostromkenny Ostrom34 gold badges176 silver badges247 bronze badges

5.2442 Huy hiệu vàng18 Huy hiệu bạc29 Huy hiệu đồngAug 4 at 17:52

3

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
2

Đã trả lời ngày 8 tháng 3 năm 2019 lúc 6:32Aug 26, 2018 at 17:07

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
3

Đã trả lời ngày 6 tháng 5 năm 2021 lúc 5:10Aug 21, 2018 at 17:09

2

def sumprimes(n):
    sum1 = 0
    for i in range(0,len(n)):
        num = n[i]
        if num > 1:
            for j in range(2, int(num**0.5)+1):
                if num%j != 0:
                    sum1 = sum1 + num
        else:
            sum1 = 0
    return(sum1)
4

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

Câu trả lời nên là điều này. [Bạn nên thử mã này, trong liên kết này.

Đã trả lời ngày 4 tháng 8 năm 2016 lúc 13:575 gold badges16 silver badges42 bronze badges

Đã trả lời ngày 9 tháng 2 năm 2017 lúc 14:08Jun 15, 2021 at 18:25

Hướng dẫn sum of prime numbers in a list in python - tổng các số nguyên tố trong một danh sách trong python

1

Làm thế nào để bạn tổng hợp các mục trong một danh sách trong Python?

Python cung cấp một tổng số hàm sẵn () tổng hợp các số trong danh sách. Cú pháp: Sum (có thể lặp lại, bắt đầu) có thể sử dụng được: Có thể là bất cứ thứ gì danh sách, bộ dữ liệu hoặc từ điển, nhưng quan trọng nhất là nó phải là số. Bắt đầu: Bắt đầu này được thêm vào tổng số số trong itable.sum(iterable, start) iterable : iterable can be anything list , tuples or dictionaries , but most importantly it should be numbers. start : this start is added to the sum of numbers in the iterable.

Làm thế nào để bạn tìm thấy tổng của tất cả các số nguyên tố?

Một giải pháp đơn giản là đi qua tất cả các số từ 1 đến N. đối với mỗi số, hãy kiểm tra xem nó có phải là số nguyên tố không. Nếu có, hãy thêm nó vào kết quả.Một giải pháp hiệu quả là sử dụng sàng eratosthenes để tìm tất cả các số nguyên tố từ đến N và sau đó thực hiện tổng của chúng.traverse all numbers from 1 to n. For every number, check if it is a prime. If yes, add it to result. An efficient solution is to use Sieve of Eratosthenes to find all prime numbers from till n and then do their sum.

Có chức năng isprime trong Python?

phương thức isprime ().Trong mô -đun SIMPY, chúng ta có thể kiểm tra xem một số n nhất định có phải là nguyên tố hay không sử dụng hàm sympy.isprime () hay không.Đối với n <2^64, câu trả lời là dứt khoát;Các giá trị N lớn hơn có xác suất nhỏ thực sự là giả.sympy. isprime() function. For n < 2^64 the answer is definitive; larger n values have a small probability of actually being pseudoprimes.

Bạn có thể tổng hợp một danh sách trong Python không?

Tổng chức năng tích hợp của Python () là một cách hiệu quả và pythonic để tổng hợp một danh sách các giá trị số..