Dado un número entero N , compruebe si el número dado es un número de Curzon o no.
Se dice que un número N es un número de Curzon si 2 N + 1 es divisible por 2*N + 1 .
Ejemplo:
Entrada: N = 5
Salida: Sí
Explicación:
2^5 + 1 = 33 y 2*5 + 1 = 11
Dado que 11 divide a 33, entonces 5 es un número curzon.Entrada: N = 10
Salida: No
Explicación:
2^10 + 1 = 1025 y 2*10 + 1 = 21
1025 no es divisible por 21, por lo que 10 no es un número curzon.
Enfoque: El enfoque es calcular y comprobar si 2 N + 1 es divisible por 2*N + 1 o no.
- Primero encuentra el valor de 2*N + 1
- Luego encuentra el valor de 2 N + 1
- Compruebe si el segundo valor es divisible por el primer valor, entonces es un número de Curzon , de lo contrario no.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to check if a number // is a Curzon number or not void checkIfCurzonNumber(int N) { long int powerTerm, productTerm; // Find 2^N + 1 powerTerm = pow(2, N) + 1; // Find 2*N + 1 productTerm = 2 * N + 1; // Check for divisibility if (powerTerm % productTerm == 0) cout << "Yes\n"; else cout << "No\n"; } // Driver code int main() { long int N = 5; checkIfCurzonNumber(N); N = 10; checkIfCurzonNumber(N); return 0; }
Java
// Java implementation of the approach import java.io.*; import java.util.*; class GFG { // Function to check if a number // is a Curzon number or not static void checkIfCurzonNumber(long N) { double powerTerm, productTerm; // Find 2^N + 1 powerTerm = Math.pow(2, N) + 1; // Find 2*N + 1 productTerm = 2 * N + 1; // Check for divisibility if (powerTerm % productTerm == 0) System.out.println("Yes"); else System.out.println("No"); } // Driver code public static void main(String[] args) { long N = 5; checkIfCurzonNumber(N); N = 10; checkIfCurzonNumber(N); } } // This code is contributed by coder001
Python3
# Python3 implementation of the approach # Function to check if a number # is a Curzon number or not def checkIfCurzonNumber(N): powerTerm, productTerm = 0, 0 # Find 2^N + 1 powerTerm = pow(2, N) + 1 # Find 2*N + 1 productTerm = 2 * N + 1 # Check for divisibility if (powerTerm % productTerm == 0): print("Yes") else: print("No") # Driver code if __name__ == '__main__': N = 5 checkIfCurzonNumber(N) N = 10 checkIfCurzonNumber(N) # This code is contributed by mohit kumar 29
C#
// C# implementation of the approach using System; class GFG{ // Function to check if a number // is a curzon number or not static void checkIfCurzonNumber(long N) { double powerTerm, productTerm; // Find 2^N + 1 powerTerm = Math.Pow(2, N) + 1; // Find 2*N + 1 productTerm = 2 * N + 1; // Check for divisibility if (powerTerm % productTerm == 0) Console.WriteLine("Yes"); else Console.WriteLine("No"); } // Driver code static public void Main () { long N = 5; checkIfCurzonNumber(N); N = 10; checkIfCurzonNumber(N); } } // This code is contributed by shubhamsingh10
Javascript
<script> // Javascript implementation of the approach // Function to check if a number // is a Curzon number or not function checkIfCurzonNumber(N) { var powerTerm, productTerm; // Find 2^N + 1 powerTerm = Math.pow(2, N) + 1; // Find 2*N + 1 productTerm = 2 * N + 1; // Check for divisibility if (powerTerm % productTerm == 0) { document.write("Yes" + "</br>"); } else { document.write("No"); } } // Driver code var N = 5; checkIfCurzonNumber(N); N = 10; checkIfCurzonNumber(N); // This code is contributed by Ankita saini </script>
Yes No
Complejidad del tiempo: O(log N)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por thakurabhaysingh445 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA