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.
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
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
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.