# C/C++ Program to find Product of unique prime factors of a number

• Difficulty Level : Easy
• Last Updated : 05 Dec, 2018

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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.

 `// 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;``}`

Output:

```22
```

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

 `// 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 function``int` `main()``{``    ``int` `n = 44;``    ``cout << productPrimeFactors(n);``    ``return` `0;``}`

Output:

```22
```

Please refer complete article on Product of unique prime factors of a number for more details!

My Personal Notes arrow_drop_up