Dado un número N , la tarea es verificar si N tiene 7 divisores o no.
Ejemplos:
Entrada: 64
Salida: 1
Explicación: 1, 2, 4, 8, 16, 32, 64 -> 7 divisores por lo que la salida es 1Entrada: 100
Salida: 0
Explicación: 1, 2, 4, 5, 10, 20, 25, 50, 100 -> 8 divisores por lo que la salida es 0Entrada: 729
Salida: 1
Explicación: 1, 2, 4, 8, 16, 32, 64 -> 7 divisores por lo que la salida es 1
Enfoque: El problema se puede resolver con base en la siguiente observación matemática:
La descomposición en factores primos de un número es:
N = p 1 e1 * p 2 e2 * . . . * p n es
Entonces número de divisores = ( e 1 + 1 ) * (e 2 + 1) *. . . * (e n + 1).En este caso, número de divisores = 7 .
Entonces, ( e 1 + 1 ) * (e 2 + 1) *. . . * (e n + 1) = 77 es la multiplicación de a lo sumo 2 números naturales.
Entonces, solo se puede escribir como ( e 1 + 1 ) * (e 2 + 1) = 1 * 7
Entonces, e 1 = 0 & e 2 = 6 de la ecuación anterior.
Entonces, está claro que para 7 divisores solo es posible un caso y ese es (número primo) 6 . Siga los pasos para resolver el problema:
- Comprueba si N (1/6) es un número primo o no.
- Si es un número primo, entonces emite «Sí».
- De lo contrario, la salida será «No».
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to implement the approach #include <bits/stdc++.h> using namespace std; // Function to check number of // divisors are 7 or not int sevenDivisors(int N) { // Using power function to get 6th Root int k = pow(N, 1 / 6.); // Using power function to get // 6th power of k int res = pow(k, 6); // If res is equal to given number // N then return 1 if (N == res) return 1; return 0; } // Driver code int main() { int N = 64; // Function call bool ans = sevenDivisors(N); if (ans) cout << "Yes"; else cout << "No"; return 0; }
Java
// Java code to implement the approach import java.io.*; class GFG { public boolean sevenDivisors(int N) { // Using power function to get 6th Root int k = (int)Math.pow(N, 1 / 6.); // Using power function to get // 6th power of k int res = (int)Math.pow(k, 6); // If res is equal to given number // N then return 1 if (N == res) return true; return false; } public static void main(String[] args) { int N = 64; // Function call GFG g1 = new GFG(); boolean ans = g1.sevenDivisors(N); if (ans) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by patildhanu4111999.
Python3
# Python3 code to implement the approach # Function to check number of # divisors are 7 or not def sevenDivisors(N) : # Using power function to get 6th Root k = pow(N, 1 / 6); # Using power function to get # 6th power of k res = pow(k, 6); # If res is equal to given number # N then return 1 if (N == res) : return 1; return 0; # Driver code if __name__ == "__main__" : N = 64; # Function call ans = sevenDivisors(N); if (ans) : print("Yes"); else : print("No"); # This code is contributed by AnkThon
C#
// C# code to implement the approach using System; public class GFG { public bool sevenDivisors(int N) { // Using power function to get 6th Root int k = (int)Math.Pow(N, 1 / 6.0); // Using power function to get // 6th power of k int res = (int)Math.Pow(k, 6); // If res is equal to given number // N then return 1 if (N == res) return true; return false; } public static void Main(String[] args) { int N = 64; // Function call GFG g1 = new GFG(); bool ans = g1.sevenDivisors(N); if (ans) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code contributed by shikhasingrajput
Javascript
<script> // Javascript code to implement the approach // Function to check number of // divisors are 7 or not function sevenDivisors(N) { // Using power function to get 6th Root let k = Math.pow(N, 1 / 6.); // Using power function to get // 6th power of k let res = Math.pow(k, 6); // If res is equal to given number // N then return 1 if (N == res) return 1; return 0; } // Driver code let N = 64; // Function call let ans = sevenDivisors(N); if (ans) document.write('YES',"</br>"); else document.write('No',"</br>"); </script>
Yes
Complejidad temporal: O(logN) Espacio
auxiliar : O(1)
Publicación traducida automáticamente
Artículo escrito por its_codezada17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA