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.
public class GFG {
public static long productPrimeFactors( int n)
{
long product = 1 ;
for ( int i = 2 ; i <= n; i++) {
if (n % i == 0 ) {
boolean isPrime = true ;
for ( int j = 2 ; j <= i / 2 ; j++) {
if (i % j == 0 ) {
isPrime = false ;
break ;
}
}
if (isPrime) {
product = product * i;
}
}
}
return product;
}
public static void main(String[] args)
{
int n = 44 ;
System.out.print(productPrimeFactors(n));
}
}
|
Method 2 (Efficient)
The idea is based on Efficient program to print all prime factors of a given number
import java.util.*;
import java.lang.*;
public class GFG {
public static long productPrimeFactors( int n)
{
long product = 1 ;
if (n % 2 == 0 ) {
product *= 2 ;
while (n % 2 == 0 )
n = n / 2 ;
}
for ( int i = 3 ; i <= Math.sqrt(n); i = i + 2 ) {
if (n % i == 0 ) {
product = product * i;
while (n % i == 0 )
n = n / i;
}
}
if (n > 2 )
product = product * n;
return product;
}
public static void main(String[] args)
{
int n = 44 ;
System.out.print(productPrimeFactors(n));
}
}
|
Please refer complete article on Product of unique prime factors of a number for more details!