Programa Java para encontrar el producto de factores primos únicos de un número

Dado un número n, necesitamos encontrar el producto de todos sus factores primos únicos. Factores primos: Es básicamente un factor del número que es un número primo en sí mismo.

Ejemplos:

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.

Método 1 (Simple)
Usar un ciclo de i = 2 a n y verificar si i es un factor de n, luego verificar si i es un número primo, si es así, luego almacenar el producto en la variable del producto y continuar este proceso hasta 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
Producción:

22

Método 2 (Eficiente)
La idea se basa en el programa Eficiente para imprimir todos los factores primos de un número dado

// 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
Producción:

22

Consulte el artículo completo sobre Producto de factores primos únicos de un número para obtener más detalles.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *