Related Articles

# Product of unique prime factors of a number

• Difficulty Level : Easy
• Last Updated : 04 May, 2021

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

 ``
Output :
`22`

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

 ` 2)``        ``\$product` `= ``\$product` `* ``\$n``;` `    ``return` `\$product``;``}` `// Driver Code``\$n` `= 44;``echo` `productPrimeFactors(``\$n``);` `// This code is contributed by ajit``?>`

## Javascript

 ``
Output :
`22`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up