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
Approach: Basic brute-force method
Steps:
- Initialize the product to be 1 and an empty list of primes.
- Iterate through all numbers i between 2 and n (inclusive).
- For each i, check if it is prime by iterating through all numbers j between 2 and i-1 (inclusive) and checking if i is divisible by j. If i is not divisible by any j, it is prime, so append i to the list of primes and multiply it with the running product.
- Return the product of all primes.
C++
#include <iostream>
#include <vector> // include vector library for storing prime numbers
using namespace std;
bool is_prime( int num) {
if (num < 2) {
return false ;
}
for ( int i = 2; i < num; i++) {
if (num % i == 0) {
return false ;
}
}
return true ;
}
int product_of_primes( int n) {
int product = 1;
vector< int > primes;
for ( int i = 2; i <= n; i++) {
if (is_prime(i)) {
primes.push_back(i);
product *= i;
}
}
return product;
}
int main() {
cout << product_of_primes(5) << endl;
return 0;
}
|
Java
import java.util.ArrayList;
import java.util.List;
public class PrimeProduct {
public static boolean isPrime( int num) {
if (num < 2 ) {
return false ;
}
for ( int i = 2 ; i < num; i++) {
if (num % i == 0 ) {
return false ;
}
}
return true ;
}
public static int productOfPrimes( int n) {
int product = 1 ;
List<Integer> primes = new ArrayList<>();
for ( int i = 2 ; i <= n; i++) {
if (isPrime(i)) {
primes.add(i);
product *= i;
}
}
return product;
}
public static void main(String[] args) {
System.out.println(productOfPrimes( 5 ));
}
}
|
Python3
def is_prime(num):
if num < 2 :
return False
for i in range ( 2 , num):
if num % i = = 0 :
return False
return True
def product_of_primes(n):
product = 1
primes = []
for i in range ( 2 , n + 1 ):
if is_prime(i):
primes.append(i)
product * = i
return product
print (product_of_primes( 5 ))
|
C#
using System;
using System.Collections.Generic;
class Program
{
static bool IsPrime( int num)
{
if (num < 2)
{
return false ;
}
for ( int i = 2; i < num; i++)
{
if (num % i == 0)
{
return false ;
}
}
return true ;
}
static int ProductOfPrimes( int n)
{
int product = 1;
List< int > primes = new List< int >();
for ( int i = 2; i <= n; i++)
{
if (IsPrime(i))
{
primes.Add(i);
product *= i;
}
}
return product;
}
static void Main()
{
Console.WriteLine(ProductOfPrimes(5));
}
}
|
Javascript
function is_prime(num) {
if (num < 2) {
return false ;
}
for (let i = 2; i < num; i++) {
if (num % i === 0) {
return false ;
}
}
return true ;
}
function product_of_primes(n) {
let product = 1;
let primes = [];
for (let i = 2; i <= n; i++) {
if (is_prime(i)) {
primes.push(i);
product *= i;
}
}
return product;
}
console.log(product_of_primes(5));
|
The time complexity of this approach is O(n^2).
The auxiliary space is O(n).
Efficient Approach:
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.
C++
#include <bits/stdc++.h>
using namespace std;
long ProdOfPrimes( int n)
{
bool prime[n + 1];
memset (prime, true , n + 1);
for ( int p = 2; p * p <= n; p++) {
if (prime[p] == true ) {
for ( int i = p * 2; i <= n; i += p)
prime[i] = false ;
}
}
long prod = 1;
for ( int i = 2; i <= n; i++)
if (prime[i])
prod *= i;
return prod;
}
int main()
{
int n = 10;
cout << ProdOfPrimes(n);
return 0;
}
|
Java
import java.util.Arrays;
class GFG {
static long ProdOfPrimes( int n)
{
boolean prime[]= new boolean [n + 1 ];
Arrays.fill(prime, true );
for ( int p = 2 ; p * p <= n; p++) {
if (prime[p] == true ) {
for ( int i = p * 2 ; i <= n; i += p)
prime[i] = false ;
}
}
long prod = 1 ;
for ( int i = 2 ; i <= n; i++)
if (prime[i])
prod *= i;
return prod;
}
public static void main (String[] args)
{
int n = 10 ;
System.out.print(ProdOfPrimes(n));
}
}
|
Python3
def ProdOfPrimes(n):
prime = [ True for i in range (n + 1 )]
p = 2
while (p * p < = n):
if (prime[p] = = True ):
i = p * 2
while (i < = n):
prime[i] = False
i + = p
p + = 1
prod = 1
for i in range ( 2 , n + 1 ):
if (prime[i]):
prod * = i
return prod
n = 10
print (ProdOfPrimes(n))
|
C#
using System;
public class GFG
{
static long ProdOfPrimes( int n)
{
bool []prime= new bool [n + 1];
for ( int i = 0; i < n + 1; i++)
prime[i] = true ;
for ( int p = 2; p * p <= n; p++) {
if (prime[p] == true ) {
for ( int i = p * 2; i <= n; i += p)
prime[i] = false ;
}
}
long prod = 1;
for ( int i = 2; i <= n; i++)
if (prime[i])
prod *= i;
return prod;
}
public static void Main ()
{
int n = 10;
Console.Write(ProdOfPrimes(n));
}
}
|
Javascript
<script>
function ProdOfPrimes(n)
{
let prime = new Array(n + 1);
prime.fill(0);
for (let i = 0; i < n + 1; i++)
prime[i] = true ;
for (let p = 2; p * p <= n; p++) {
if (prime[p] == true ) {
for (let i = p * 2; i <= n; i += p)
prime[i] = false ;
}
}
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>
|
PHP
<?php
function ProdOfPrimes( $n )
{
$prime = array ();
for ( $i = 0; $i < $n + 1; $i ++)
$prime [ $i ] = true;
for ( $p = 2; $p * $p <= $n ; $p ++)
{
if ( $prime [ $p ] == true)
{
for ( $i = $p * 2; $i <= $n ;
$i += $p )
$prime [ $i ] = false;
}
}
$prod = 1;
for ( $i = 2; $i <= $n ; $i ++)
if ( $prime [ $i ])
$prod *= $i ;
return $prod ;
}
$n = 10;
echo (ProdOfPrimes( $n ));
?>
|
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
Last Updated :
08 Oct, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...