Dado un número “n”, encuentra si el número total de divisores es par o impar.
Ejemplos:
Input: n = 10 Output: Even Input: n = 100 Output: Odd Input: n = 125 Output: Even
Un enfoque ingenuo sería encontrar todos los divisores y luego ver si el número total de divisores es par o impar.
La complejidad temporal para tal solución sería O(sqrt(n))
// Naive Solution to // find if count of // divisors is even // or odd import java.io.*; import java.math.*; class GFG { // Function to count // the divisors static void countDivisors(int n) { // Initialize count // of divisors int count = 0; // Note that this // loop runs till // square root for (int i = 1; i <= Math.sqrt(n) + 1; i++) { if (n % i == 0) // If divisors are // equal increment // count by one // Otherwise increment // count by 2 count += (n / i == i) ? 1 : 2; } if (count % 2 == 0) System.out.println("Even"); else System.out.println("Odd"); } // Driver program public static void main(String args[]) { System.out.println("The count of divisor:"); countDivisors(10); } } /* This code is contributed by Nikita Tiwari.*/
The count of divisor: Even
Solución Eficiente:
Podemos observar que el número de divisores es impar solo en el caso de los cuadrados perfectos. Por lo tanto, la mejor solución sería verificar si el número dado es un cuadrado perfecto o no. Si es un cuadrado perfecto, entonces el número de divisores sería impar, de lo contrario sería par.
// Java program for // Efficient Solution to find // if count of divisors is // even or odd import java.io.*; import java.math.*; class GFG { // Function to find if count // of divisors is even or // odd static void countDivisors(int n) { int root_n = (int)(Math.sqrt(n)); // If n is a perfect square, // then, it has odd divisors if (root_n * root_n == n) System.out.println("Odd"); else System.out.println("Even"); } /* Driver program to test above function */ public static void main(String args[]) throws IOException { System.out.println("The count of " + "divisors of 10 is: "); countDivisors(10); } } /* This code is contributed by Nikita Tiwari. */
The count of divisors of 10 is: Even
Consulte el artículo completo sobre Comprobar si el recuento de divisores es par o impar 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