Product of unique prime factors of a number (original) (raw)

Last Updated : 11 Jul, 2025

Given a number n, we need to find the product of all of its unique prime factors. Prime factors: It is basically a factor of the number that is a prime number itself.
Examples :

Input: num = 10 Output: Product is 10 Explanation: Here, the input number is 10 having only 2 prime factors and they are 5 and 2. And hence their product is 10.

Input : num = 25 Output: Product is 5 Explanation: Here, for the input to be 25 we have only one unique prime factor i.e 5. And hence the required product is 5.

Method 1 (Simple)
Using a loop from i = 2 to n and check if i is a factor of n then check if i is prime number itself if yes then store product in product variable and continue this process till i = n.

Try It Yourselfredirect icon

CPP `

// C++ program to find product of // unique prime factors of a number #include <bits/stdc++.h> using namespace std;

long long int productPrimeFactors(int n) { long long int product = 1;

for (int i = 2; i <= n; i++) {

    // Checking if 'i' is factor of num
    if (n % i == 0) {

        // Checking if 'i' is a Prime number
        bool isPrime = true;
        for (int j = 2; j <= i / 2; j++) {
            if (i % j == 0) {
                isPrime = false;
                break;
            }
        }

        // condition if 'i' is Prime number
        // as well as factor of num
        if (isPrime) {
            product = product * i;
        }
    }
}

return product;

}

// driver function int main() { int n = 44; cout << productPrimeFactors(n); return 0; }

Java

// Java program to find product of // unique prime factors of a number.

class GFG { public static long productPrimeFactors(int n) { long product = 1;

    for (int i = 2; i <= n; i++) {
        // Checking if 'i' is factor of num
        if (n % i == 0) {

            // Checking if 'i' is a Prime number
            boolean isPrime = true;
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }

            // condition if 'i' is Prime number
            // as well as factor of num
            if (isPrime) {
                product = product * i;
            }
        }
    }
    return product;
}

// Driver Code
public static void main(String[] args)
{
    int n = 44;
    System.out.print(productPrimeFactors(n));
}

}

// This code is contributed by _omg

Python3

Python program to find sum of given

series.

def productPrimeFactors(n): product = 1

for i in range(2, n + 1):
    if (n % i == 0):
        isPrime = 1
        
        for j in range(2, int(i / 2 + 1)):
            if (i % j == 0):
                isPrime = 0
                break
            
        # condition if 'i' is Prime number
        # as well as factor of num
        if (isPrime):
            product = product * i
            
return product  

main()

n = 44 print (productPrimeFactors(n))

Contributed by _omg

C#

// C# program to find product of // unique prime factors of a number. using System;

class GFG {

// Function to find product of unique
// prime factors of a number
public static long productPrimeFactors(int n)
{
    long product = 1;

    for (int i = 2; i <= n; i++) {

        // Checking if 'i' is factor of num
        if (n % i == 0) {

            // Checking if 'i' is a Prime number
            bool isPrime = true;
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }

            // condition if 'i' is Prime number
            // as well as factor of num
            if (isPrime) {
                product = product * i;
            }
        }
    }
    return product;
}

// Driver Code
public static void Main()
{
    int n = 44;
    Console.Write(productPrimeFactors(n));
}

}

// This code is contributed by nitin mittal

PHP

i<=i <= i<=n; $i++) { // Checking if 'i' is // factor of num if ($n % $i == 0) { // Checking if 'i' is // a Prime number $isPrime = true; for ($j = 2; j<=j <= j<=i / 2; $j++) { if ($i % $j == 0) { $isPrime = false; break; } } // condition if 'i' is // Prime number as well // as factor of num if ($isPrime) { product=product = product=product * $i; } } } return $product; } // Driver Code $n = 44; echo(productPrimeFactors($n)); // This code is contributed by Ajit. ?>

JavaScript

`

Time Complexity: O(n2)
Auxiliary Space: O(1)

Method 2 (Efficient)
The idea is based on Efficient program to print all prime factors of a given number

CPP `

// C++ program to find product of // unique prime factors of a number #include <bits/stdc++.h> using namespace std;

// A function to print all prime // factors of a given number n long long int productPrimeFactors(int n) { long long int product = 1;

// Handle prime factor 2 explicitly
// so that can optimally handle
// other prime factors.
if (n % 2 == 0) {
    product *= 2;
    while (n % 2 == 0)
        n = n / 2;
}

// n must be odd at this point.
// So we can skip one element
// (Note i = i + 2)
for (int i = 3; i <= sqrt(n); i = i + 2) {
    // While i divides n, print
    // i and divide n
    if (n % i == 0) {
        product = product * i;
        while (n % i == 0)
            n = n / i;
    }
}

// This condition is to handle the
// case when n is a prime number
// greater than 2
if (n > 2)
    product = product * n;

return product;

}

// Driver Code int main() { int n = 44; cout << productPrimeFactors(n); return 0; }

Java

// Java program to find product of // unique prime factors of a number. import java.util.; import java.lang.;

class GFG { public static long productPrimeFactors(int n) { long product = 1; // Handle prime factor 2 // explicitly so that can // optimally handle other // prime factors. if (n % 2 == 0) { product *= 2; while (n % 2 == 0) n = n / 2; }

    // n must be odd at this point.
    // So we can skip one element
    // (Note i = i +2)
    for (int i = 3; i <= Math.sqrt(n); i = i + 2) {
        // While i divides n, print
        // i and divide n
        if (n % i == 0) {
            product = product * i;
            while (n % i == 0)
                n = n / i;
        }
    }

    // This condition is to handle
    // the case when n is a prime
    // number greater than 2
    if (n > 2)
        product = product * n;

    return product;
}

// Driver Code
public static void main(String[] args)
{
    int n = 44;
    System.out.print(productPrimeFactors(n));
}

}

// This code is contributed by _omg

Python3

Python program to find product of

unique prime factors of a number

import math

def productPrimeFactors(n): product = 1

# Handle prime factor 2 explicitly so that
# can optimally handle other prime factors.
if (n % 2 == 0):
    product *= 2
    while (n % 2 == 0):
        n = n / 2
        
# n must be odd at this point. So we can
# skip one element (Note i = i + 2)
for i in range (3, int(math.sqrt(n))+1, 2):
    # While i divides n, print i and
    # divide n
    if (n % i == 0):
        product = product * i
        while (n % i == 0):
            n = n / i
            
# This condition is to handle the case when n
# is a prime number greater than 2
if (n > 2):
    product = product * n
    
return product     

main()

n = 44 print (int(productPrimeFactors(n)))

Contributed by _omg

C#

// C# program to find product // of unique prime factors // of a number. using System;

public class GFG {

// Function to find product
// of prime factors
public static long productPrimeFactors(int n)
{
    long product = 1;

    // Handle prime factor 2 explicitly
    // so that can optimally handle
    // other prime factors.
    if (n % 2 == 0) {
        product *= 2;
        while (n % 2 == 0)
            n = n / 2;
    }

    // n must be odd at this point.
    // So we can skip one
    // element (Note i = i + 2)
    for (int i = 3; i <= Math.Sqrt(n);
         i = i + 2) {

        // While i divides n, print
        // i and divide n
        if (n % i == 0) {
            product = product * i;
            while (n % i == 0)
                n = n / i;
        }
    }

    // This condition is to handle
    // the case when n is a prime
    // number greater than 2
    if (n > 2)
        product = product * n;

    return product;
}

// Driver Code
public static void Main(String[] args)
{
    int n = 44;
    Console.Write(productPrimeFactors(n));
}

}

// This code is contributed by parashar...

PHP

n=n = n=n / 2; } // n must be odd at this point. // So we can skip one element // (Note i = i + 2) for ($i = 3; i<=sqrt(i <= sqrt(i<=sqrt(n); i=i = i=i + 2) { // While i divides n, print // i and divide n if ($n % $i == 0) { product=product = product=product * $i; while ($n % $i == 0) n=n = n=n / $i; } } // This condition is to handle the // case when n is a prime number // greater than 2 if ($n > 2) product=product = product=product * $n; return $product; } // Driver Code $n = 44; echo productPrimeFactors($n); // This code is contributed by ajit ?>

JavaScript

`

Time Complexity: O(?n log n)
Auxiliary Space: O(1)

Please suggest if someone has a better solution which is more efficient in terms of space and time.