Dado un entero positivo n, la tarea es verificar si es un número de Thabit. Si el número dado es un número de Thabit, imprima ‘SÍ’; de lo contrario, imprima ‘NO’.
Número de hábito : en matemáticas, un número de hábito es un número entero positivo de la forma 3* 2 n – 1, donde n es un número entero no negativo.
Los primeros números de Thabit son:
2, 5, 11, 23, 47, 95, 191, 383, 767, 1535, 3071, 6143, 12287, 24575, 49151, 98303, 196607, 393215,
Ejemplos:
Entrada: 47
Salida: SI
Explicación: para n=4, 47 se puede expresar en la forma de 3.2 n -1 como 3.2 4 -1.
Entrada: 65
Salida: NO
No existe tal valor de n para el cual 65 pueda expresarse en la forma de 3.2 n – 1
Acercarse :
- Agregue 1 al número dado, ahora el número debe ser de la forma 3*2 n
- Divide el número por 3, ahora el número debe ser de la forma 2 n
- Verifique si el número es una potencia de 2 o no. Para verificar si el número es una potencia de dos o no, consulte esto.
- Si el número es potencia de 2, imprima ‘SÍ’, de lo contrario, ‘NO’.
C++
// CPP program to check if a given // number is Thabit number or not. #include <bits/stdc++.h> using namespace std; // Utility function to check power of two bool isPowerOfTwo(int n) { return (n && !(n & (n - 1))); } // function to check if the given number // is Thabit Number bool isThabitNumber(int n) { // Add 1 to the number n = n + 1; // Divide the number by 3 if (n % 3 == 0) n = n / 3; else return false; // Check if the given number is power of 2 if (isPowerOfTwo(n)) return true; else return false; } // Driver Program int main() { int n = 47; if (isThabitNumber(n)) cout << "YES"; else cout << "NO"; return 0; }
Java
// Java code to check // for thabit number class GFG { // Utility function to check power of two static boolean isPowerOfTwo(int n) { return n != 0 && ((n & (n - 1)) == 0); } // function to check if the given number // is Thabit Number static boolean isThabitNumber(int n) { // Add 1 to the number n = n + 1; // Divide the number by 3 if (n % 3 == 0) n = n / 3; else return false; // Check if the given number is power of 2 if (isPowerOfTwo(n)) return true; else return false; } // Driver Program public static void main(String[] args) { int n = 47; // Check if number is // thabit number if (isThabitNumber(n)) { System.out.println("YES"); } else { System.out.println("NO"); } } }
Python3
# Python code to check # thabit number # Utility function to Check # power of two def isPowerOfTwo(n): return (n and (not(n & (n - 1)))) # function to check if the given number # is Thabit Number def isThabitNumber( n ): # Add 1 to the number n = n + 1; # Divide the number by 3 if (n % 3 == 0): n = n//3; else: return False # Check if the given number # is power of 2 if (isPowerOfTwo(n)): return True else: return False # Driver Program n = 47 # Check if number is # thabit number if (isThabitNumber(n)): print("YES") else: print("NO")
C#
// C# code to check // thabit number using System; class GFG { // Utility function to check power of two static bool isPowerOfTwo(int n) { return n != 0 && ((n & (n - 1)) == 0); } // function to check if the given number // is Thabit Number static bool isThabitNumber(int n) { // Add 1 to the number n = n + 1; // Divide the number by 3 if (n % 3 == 0) n = n / 3; else return false; // Check if the given number is power of 2 if (isPowerOfTwo(n)) return true; else return false; } // Driver Program public static void Main() { int n = 47; // Check if number is // thabit number if (isThabitNumber(n)) { Console.WriteLine("YES"); } else { Console.WriteLine("NO"); } } }
PHP
<?php // PHP program to check if a given // number is Thabit number or not. // Utility function to check // power of two function isPowerOfTwo($n) { return ($n && !($n & ($n - 1))); } // function to check if the // given number is Thabit Number function isThabitNumber($n) { // Add 1 to the number $n = $n + 1; // Divide the number by 3 if ($n % 3 == 0) $n = $n / 3; else return false; // Check if the given number // is power of 2 if (isPowerOfTwo($n)) return true; else return false; } // Driver Code $n = 47; if (isThabitNumber($n)) echo "YES"; else echo "NO"; // This code is contributed // by Shashank ?>
Javascript
<script> // Javascript program to check if a given // number is Thabit number or not. // Utility function to check power of two function isPowerOfTwo(n) { return (n && !(n & (n - 1))); } // function to check if the given number // is Thabit Number function isThabitNumber(n) { // Add 1 to the number n = n + 1; // Divide the number by 3 if (n % 3 == 0) n = n / 3; else return false; // Check if the given number is power of 2 if (isPowerOfTwo(n)) return true; else return false; } // Driver Program var n = 47; if (isThabitNumber(n)) document.write( "YES"); else document.write("NO"); </script>
Producción:
YES