For working professionals
For fresh graduates
More
13. Print In Python
15. Python for Loop
19. Break in Python
23. Float in Python
25. List in Python
27. Tuples in Python
29. Set in Python
53. Python Modules
57. Python Packages
59. Class in Python
61. Object in Python
73. JSON Python
79. Python Threading
84. Map in Python
85. Filter in Python
86. Eval in Python
96. Sort in Python
101. Datetime Python
103. 2D Array in Python
104. Abs in Python
105. Advantages of Python
107. Append in Python
110. Assert in Python
113. Bool in Python
115. chr in Python
118. Count in python
119. Counter in Python
121. Datetime in Python
122. Extend in Python
123. F-string in Python
125. Format in Python
131. Index in Python
132. Interface in Python
134. Isalpha in Python
136. Iterator in Python
137. Join in Python
140. Literals in Python
141. Matplotlib
144. Modulus in Python
147. OpenCV Python
149. ord in Python
150. Palindrome in Python
151. Pass in Python
156. Python Arrays
158. Python Frameworks
160. Python IDE
164. Python PIP
165. Python Seaborn
166. Python Slicing
168. Queue in Python
169. Replace in Python
173. Stack in Python
174. scikit-learn
175. Selenium with Python
176. Self in Python
177. Sleep in Python
179. Split in Python
184. Strip in Python
185. Subprocess in Python
186. Substring in Python
195. What is Pygame
197. XOR in Python
198. Yield in Python
199. Zip in Python
A prime number in Python is a number greater than 1 that has no divisors other than 1 and itself. Examples of prime numbers are 2, 3, 5, 7, and so on.
You’ll look at how the sum of prime numbers in Python using for loop, and other techniques. It can be tricky to check if a number is prime, especially when you want to sum a series of prime numbers efficiently.
By the end of this article, you will be able to calculate sum of n prime numbers in Python boosting your understanding of loops and prime number logic in Python.
“Enhance your Python skills further with our Data Science and Machine Learning courses from top universities — take the next step in your learning journey!”
Let’s look at how to calculate the sum of prime numbers in Python using a for loop.
def is_prime(num):
if num <= 1:
return False # Numbers less than or equal to 1 are not prime
for i in range(2, int(num ** 0.5) + 1): # Check divisibility up to the square root of num
if num % i == 0:
return False # If num is divisible by i, it's not prime
return True # If no divisors are found, num is prime
# Sum of prime numbers up to n
n = int(input("Enter a number: ")) # Take user input for n
sum_primes = 0 # Initialize sum variable
# Loop to check each number up to n
for i in range(2, n + 1): # Start from 2, since 1 is not a prime number
if is_prime(i): # Check if the current number i is prime
sum_primes += i # Add prime number to the sum
print(f"Sum of prime numbers between 1 and {n} is: {sum_primes}")
Output:
Enter a number: 10Sum of prime numbers between 1 and 10 is: 17
Explanation:
Why Use a For Loop?
Using a for loop is an intuitive and straightforward approach when you want to check each number in a sequence. This method allows you to break down the task into manageable steps—checking each number and summing the primes efficiently.
This approach works well for relatively smaller values of n where performance is not a critical concern. However, as the value of n grows, this approach can become slower because it checks each number individually.
When to Use This Method
“Start your coding journey with our complimentary Python courses designed just for you — dive into Python programming fundamentals, explore key Python libraries, and engage with practical case studies!”
The Sieve of Eratosthenes is an efficient algorithm for finding all prime numbers up to a given number n. This method is especially useful when you need to find multiple primes and calculate their sum, as it eliminates non-prime numbers in an efficient manner.
Let’s look at how to calculate the sum of prime numbers in Python using the Sieve of Eratosthenes.
# Function to calculate sum of prime numbers using Sieve of Eratosthenes
def sieve_of_eratosthenes(n):
# Step 1: Create a boolean array "prime[0..n]" and initialize all entries as True.
# A value in prime[i] will be False if i is Not a prime, True if i is a prime.
prime = [True] * (n + 1)
prime[0] = prime[1] = False # 0 and 1 are not prime numbers
# Step 2: Implement the Sieve of Eratosthenes algorithm
for p in range(2, int(n**0.5) + 1): # Check only up to the square root of n
if prime[p]: # If prime[p] is still True, it is a prime number
for i in range(p * p, n + 1, p): # Mark multiples of p as non-prime
prime[i] = False
# Step 3: Calculate the sum of primes
prime_sum = sum(i for i in range(2, n + 1) if prime[i]) # Sum all prime numbers
return prime_sum
# Take user input for n
n = int(input("Enter a number: "))
# Call the function and print the result
result = sieve_of_eratosthenes(n)
print(f"Sum of all prime numbers up to {n} is: {result}")
Output:
Enter a number: 10Sum of all prime numbers up to 10 is: 17
Explanation:
Why Use the Sieve of Eratosthenes?
The Sieve of Eratosthenes is much more efficient than using a for loop for checking each number individually. The algorithm works in O(n log log n) time complexity, making it far more suitable for larger values of n compared to methods that check each number's primality individually, which can take O(n * sqrt(n)) time.
The Miller-Rabin primality test is an efficient probabilistic algorithm used to check if a number is prime. Unlike the Sieve of Eratosthenes, which finds all primes up to n, the Miller-Rabin test is used for testing the primality of individual numbers.
It is particularly useful when dealing with large numbers due to its efficiency.
The Miller-Rabin primality test is a probabilistic algorithm, which means it can occasionally produce a false positive. However, by running the test multiple times, we can reduce the probability of such errors. It works by checking if a number passes certain conditions that hold for prime numbers.
Here is the Python code to find the sum of prime numbers in Python:
import random
# Miller-Rabin primality test function
def miller_rabin(n, k=5):
# Handle small cases
if n <= 1:
return False
if n == 2:
return True
if n % 2 == 0:
return False
# Write n-1 as d*2^r
r, d = 0, n - 1
while d % 2 == 0:
r += 1
d //= 2
# Test for primality k times
for _ in range(k):
a = random.randint(2, n - 2) # Choose a random base a
x = pow(a, d, n) # Compute a^d % n
if x == 1 or x == n - 1:
continue
for _ in range(r - 1):
x = pow(x, 2, n) # Compute x^2 % n
if x == n - 1:
break
else:
return False # Return false if no prime is found
return True
# Sum of prime numbers up to n
def sum_of_primes(n):
sum_primes = 0
for i in range(2, n + 1): # Loop through numbers from 2 to n
if miller_rabin(i): # Check if the number is prime
sum_primes += i # Add prime number to the sum
return sum_primes
# Take user input for n
n = int(input("Enter a number: "))
# Calculate sum of prime numbers using Miller-Rabin test
result = sum_of_primes(n)
print(f"Sum of all prime numbers up to {n} using Miller-Rabin test is: {result}")
Output:
Enter a number: 10Sum of all prime numbers up to 10 using Miller-Rabin test is: 17
Explanation:
Why Use the Miller-Rabin Primality Test?
The Miller-Rabin primality test is much faster than traditional methods for large numbers because it avoids checking every possible divisor. While it is a probabilistic test, it’s very efficient and can be made extremely accurate by running the test multiple times (adjustable with the k parameter).
This method is particularly useful for:
Also Read: Perfect Number Program In Python: How to check if a number is perfect or not?
The sum of prime numbers in Python using for loop refers to the process of iterating through numbers, checking if they are prime, and summing the prime numbers found.
To calculate the sum of n prime numbers in Python, you can use a for loop to check if each number from 2 to n is prime and add them to the sum.
The Miller-Rabin primality test is a probabilistic algorithm used to determine if a number is prime. It is more efficient for larger numbers compared to traditional primality tests.
The Sieve of Eratosthenes finds all primes up to n by iterating through numbers and marking the multiples of each prime as non-prime. You can sum the primes found in this way.
Yes, you can use recursion to check if a number is prime and calculate the sum of n prime numbers in Python by recursively summing primes up to n.
The Miller-Rabin test runs in O(k log n) time complexity, where k is the number of iterations. This makes it much faster than traditional primality testing for large numbers.
The for loop method is straightforward but slower for large n compared to optimized methods like the Sieve of Eratosthenes or Miller-Rabin primality test.
Yes, the Sieve of Eratosthenes is more efficient for finding multiple primes up to n because it avoids checking each number individually, unlike the sum of prime numbers in Python using for loop.
Yes, the Miller-Rabin test is probabilistic, meaning it can return false positives. However, increasing the number of iterations reduces this probability.
For small n, the sum of prime numbers in Python using for loop works fine. For larger values, the Sieve of Eratosthenes or Miller-Rabin test is more efficient. Choose based on the problem size.
The for loop method checks divisibility for each number, making it slower for large n. The Miller-Rabin test is a faster, probabilistic method for checking primality, especially with large numbers.
Take our Free Quiz on Python
Answer quick questions and assess your Python knowledge
Author
Talk to our experts. We are available 7 days a week, 9 AM to 12 AM (midnight)
Indian Nationals
1800 210 2020
Foreign Nationals
+918045604032
1.The above statistics depend on various factors and individual results may vary. Past performance is no guarantee of future results.
2.The student assumes full responsibility for all expenses associated with visas, travel, & related costs. upGrad does not provide any a.