How do I find the sum of prime numbers in a given range in Python 3.5?

前端 未结 3 1742
醉梦人生
醉梦人生 2021-01-16 18:29

I managed to create a list of prime numbers in a given range using this:

import numpy as np  

num = int(input(\"Enter a number: \"))  

for a in range(2,num         


        
相关标签:
3条回答
  • 2021-01-16 18:44

    In your case, a is an integer variable being used in your loop, not an iterable.

    import numpy as np
    
    num = int(input("Enter a number: "))
    
    primes = []
    
    for a in range(2,num+1):
    
      maxInt= int(np.sqrt(a)) + 1
    
      for i in range(2,maxInt):
    
        if (a%i==0):
          break
    
      else:
        primes.append(a)
    
    print(sum(primes))
    

    So if we just append them to a list as we go instead of printing them, we get the following output when taking the sum of the list primes.

    Enter a number: 43
    281
    
    0 讨论(0)
  • 2021-01-16 18:46

    Sum them inside the loop

    import numpy as np  
    
    num = int(input("Enter a number: "))  
    
    result=0
    for a in range(2,num+1):         
      maxInt=int(np.sqrt(a)) + 1  
      for i in range(2,maxInt):
        if (a%i==0):  
          break  
        else: 
          print (a)
          result+=a
    
    print(result)
    
    0 讨论(0)
  • 2021-01-16 18:57

    If you want to use sum, you could make a generator function, yielding each a in the loop so you have an iterable to call sum on:

    num = int(input("Enter a number: "))
    
    def sum_range(num):
        for a in range(2, num + 1):
            maxInt = int(a **.5) + 1 
            for i in range(2, maxInt):
                if a % i == 0:
                    break
            else:
                yield a
    
    print(sum(sum_range(num)))
    
    0 讨论(0)
提交回复
热议问题