Find product of prime numbers between 1 to n
Given a number n, we need to find the product of all prime numbers between 1 to n.
Examples:
Input: 5 Output: 30 Explanation: product of prime numbers between 1 to 5 is 2 * 3 * 5 = 30 Input : 7 Output : 210
Using Sieve of Eratosthenes to find all prime numbers from 1 to n then compute the product.
Following is the algorithm to find all the prime numbers less than or equal to a given integer n by Eratosthenes’ method:
When the algorithm terminates, all the numbers in the list that are not marked are prime and using a loop we compute the product of prime numbers.
When the algorithm terminates, all the numbers in the list that are not marked are prime and using a loop we compute the product of prime numbers.
C++
// CPP Program to find product // of prime numbers between 1 to n #include <bits/stdc++.h> using namespace std; // Returns product of primes in range from // 1 to n. long ProdOfPrimes( 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 product of primes generated // through Sieve. long prod = 1; for ( int i = 2; i <= n; i++) if (prime[i]) prod *= i; return prod; } // Driver code int main() { int n = 10; cout << ProdOfPrimes(n); return 0; } |
Java
// Java Program to find product // of prime numbers between 1 to n import java.util.Arrays; class GFG { // Returns product of primes in range from // 1 to n. static long ProdOfPrimes( 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 product of primes generated // through Sieve. long prod = 1 ; for ( int i = 2 ; i <= n; i++) if (prime[i]) prod *= i; return prod; } // Driver code public static void main (String[] args) { int n = 10 ; System.out.print(ProdOfPrimes(n)); } } // This code is contributed by Anant Agarwal. |
Python3
# Python3 Program to find product # of prime numbers between 1 to n # Returns product of primes # in range from 1 to n. def ProdOfPrimes(n): # Array to store prime numbers prime = [ True for i in range (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 product of primes # generated through Sieve. prod = 1 for i in range ( 2 , n + 1 ): if (prime[i]): prod * = i return prod # Driver code n = 10 print (ProdOfPrimes(n)) # This code is contributed by Anant Agarwal. |
C#
// C# Program to find product of // prime numbers between 1 to n using System; public class GFG { // Returns product of primes // in range from 1 to n. static long ProdOfPrimes( 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 product of primes generated // through Sieve. long prod = 1; for ( int i = 2; i <= n; i++) if (prime[i]) prod *= i; return prod; } // Driver code public static void Main () { int n = 10; Console.Write(ProdOfPrimes(n)); } } // This code is contributed by Sam007 |
PHP
<?php // PHP Program to find product // of prime numbers between 1 to n // Returns product of primes // in range from 1 to n. function ProdOfPrimes( $n ) { // Array to store prime // numbers 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 (); for ( $i = 0; $i < $n + 1; $i ++) $prime [ $i ] = 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 product of primes // generated through Sieve. $prod = 1; for ( $i = 2; $i <= $n ; $i ++) if ( $prime [ $i ]) $prod *= $i ; return $prod ; } // Driver Code $n = 10; echo (ProdOfPrimes( $n )); // This code is contributed by // Manish Shaw(manishshaw1) ?> |
Javascript
<script> // Javascript Program to find product of // prime numbers between 1 to n // Returns product of primes // in range from 1 to n. function ProdOfPrimes(n) { // Array to store prime numbers let prime = new Array(n + 1); prime.fill(0); // 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 (let i = 0; i < n + 1; i++) prime[i] = true ; for (let 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 (let i = p * 2; i <= n; i += p) prime[i] = false ; } } // Return product of primes generated // through Sieve. let prod = 1; for (let i = 2; i <= n; i++) if (prime[i]) prod *= i; return prod; } let n = 10; document.write(ProdOfPrimes(n)); </script> |
Output:
210
Time Complexity: O(n log log n) // for sieve of erastosthenes
Auxiliary Space: O(N) //an extra array is used to store all the prime numbers hence algorithm takes up linear space
Please Login to comment...