Program to find sum of prime numbers between 1 to n

Write a program to find sum of all prime numbers between 1 to n.

Examples:

Input : 10
Output : 17
Explanation : Primes between 1 to 10 : 2, 3, 5, 7.

Input : 11
Output : 28
Explanation : Primes between 1 to 11 : 2, 3, 5, 7, 11.

A simple solution is to 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find sum of primes in
// range from 1 to n.
#include <bits/stdc++.h>
using namespace std;
  
// Returns sum of primes in range from
// 1 to n.
int sumOfPrimes(int n)
{
    // Array to store prime numbers
    bool prime[n + 1];
  
    // Create a boolean array "prime[0..n]"
    // and initialize all entries it as true.
    // A value in prime[i] will finally be
    // false if i is Not a prime, else true.
    memset(prime, true, n + 1);
  
    for (int p = 2; p * p <= n; p++) {
  
        // If prime[p] is not changed, then
        // it is a prime
        if (prime[p] == true) {
  
            // Update all multiples of p
            for (int i = p * 2; i <= n; i += p)
                prime[i] = false;
        }
    }
  
    // Return sum of primes generated through
    // Sieve.
    int sum = 0;
    for (int i = 2; i <= n; i++)
        if (prime[i])
            sum += i;
    return sum;
}
  
// Driver code
int main()
{
    int n = 11;
    cout << sumOfPrimes(n);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find
// sum of primes in
// range from 1 to n.
import java.io.*;
import java.util.*;
  
class GFG {
      
    // Returns sum of primes
    // in range from
    // 1 to n.
    static int sumOfPrimes(int n)
    {
        // Array to store prime numbers
        boolean prime[]=new boolean[n + 1];
       
        // Create a boolean array "prime[0..n]"
        // and initialize all entries it as true.
        // A value in prime[i] will finally be
        // false if i is Not a prime, else true.
        Arrays.fill(prime, true);
       
        for (int p = 2; p * p <= n; p++) {
       
            // If prime[p] is not changed, then
            // it is a prime
            if (prime[p] == true) {
       
                // Update all multiples of p
                for (int i = p * 2; i <= n; i += p)
                    prime[i] = false;
            }
        }
       
        // Return sum of primes generated through
        // Sieve.
        int sum = 0;
        for (int i = 2; i <= n; i++)
            if (prime[i])
                sum += i;
        return sum;
    }
   
   // Driver code
    public static void main(String args[])
    {
        int n = 11;
        System.out.print(sumOfPrimes(n));
    }
}
  
  
// This code is contributed
// by Nikita Tiwari.

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to find sum of primes
# in range from 1 to n.
  
# Returns sum of primes in range from
# 1 to n
  
def sumOfPrimes(n):
    # list to store prime numbers
    prime = [True] * (n + 1)
      
    # Create a boolean array "prime[0..n]"
    # and initialize all entries it as true.
    # A value in prime[i] will finally be
    # false if i is Not a prime, else true.
      
    p = 2
    while p * p <= n:
        # If prime[p] is not changed, then
        # it is a prime
        if prime[p] == True:
            # Update all multiples of p
            i = p * 2
            while i <= n:
                prime[i] = False
                i += p
        p += 1    
           
    # Return sum of primes generated through
    # Sieve.
    sum = 0
    for i in range (2, n + 1):
        if(prime[i]):
            sum += i
    return sum
  
# Driver code
n = 11
print sumOfPrimes(n)
  
# This code is contributed by Sachin Bisht

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find
// sum of primes in
// range from 1 to n.
using System;
  
class GFG {
      
    // Returns sum of primes
    // in range from
    // 1 to n.
    static int sumOfPrimes(int n)
    {
          
        // Array to store prime numbers
        bool []prime=new bool[n + 1];
      
        // Create a boolean array "prime[0..n]"
        // and initialize all entries it as true.
        // A value in prime[i] will finally be
        // false if i is Not a prime, else true.
        for(int i = 0; i < n + 1; i++)
        prime[i] = true;
      
          
      
        for (int p = 2; p * p <= n; p++)
        {
      
            // If prime[p] is not changed,
            // then it is a prime
            if (prime[p] == true)
            {
      
                // Update all multiples of p
                for (int i = p * 2; i <= n; i += p)
                    prime[i] = false;
            }
        }
      
        // Return sum of primes 
        // generated  through Sieve.
        int sum = 0;
        for (int i = 2; i <= n; i++)
            if (prime[i])
                sum += i;
        return sum;
    }
  
    // Driver code
    public static void Main()
    {
        int n = 11;
        Console.Write(sumOfPrimes(n));
    }
}
  
// This code is contributed by nitin mittal.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find 
// sum of primes in
// range from 1 to n.
  
// Returns sum of primes 
// in range from 1 to n.
function sumOfPrimes($n)
{
    // Array to store prime 
    // numbers bool prime[n + 1];
    // Create a boolean array 
    // "prime[0..n]" and initialize 
    // all entries it as true.
    // A value in prime[i] will 
    // finally be false if i is Not
    // a prime, else true.
      
    $prime = array_fill(0, $n + 1, true);
    for ($p = 2; 
         $p * $p <= $n; $p++) 
    {
  
        // If prime[p] is not changed, 
        // then it is a prime
        if ($prime[$p] == true) 
        {
  
            // Update all multiples of p
            for ($i = $p * 2; 
                 $i <= $n; $i += $p)
                $prime[$i] = false;
        }
    }
  
    // Return sum of primes 
    // generated through Sieve.
    $sum = 0;
    for ($i = 2; $i <= $n; $i++)
        if ($prime[$i])
            $sum += $i;
    return $sum;
}
  
// Driver code
$n = 11;
echo sumOfPrimes($n);
      
// This code is contributed
// by ajit
?>

chevron_right



Output:

28

This article is contributed by Rohit Thapliyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up

Improved By : nitin mittal, jit_t