Related Articles
Java Program to find Product of unique prime factors of a number
• 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.

 `// Java program to find product of ` `// unique prime factors of a number. ` ` `  `public` `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; ` `    ``} ` ` `  `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``44``; ` `        ``System.out.print(productPrimeFactors(n)); ` `    ``} ` `} ` ` `  `// Contributed by _omg `

Output:

```22
```

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

 `// Java program to find product of ` `// unique prime factors of a number. ` `import` `java.util.*; ` `import` `java.lang.*; ` ` `  `public` `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; ` `    ``} ` ` `  `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``44``; ` `        ``System.out.print(productPrimeFactors(n)); ` `    ``} ` `} ` ` `  `// Contributed by _omg `

Output:

```22
```

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

My Personal Notes arrow_drop_up
Recommended Articles
Page :