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