Dado un número n, verifica si es divisible por 8 usando operadores bit a bit.
Ejemplos:
Input : 16 Output :YES Input :15 Output :NO
Método: Resultado = (((n >> 3) << 3) == n). Primero desplazamos los 3 bits a la derecha, luego desplazamos los 3 bits a la izquierda y luego comparamos el número con el número dado, si el número es igual al número, entonces es divisible por 8.
Explicación:
Ejemplo: n = 16 dado, por lo que el binario del 16 es 10000, ahora desplazamos los 3 bits a la derecha, ahora tenemos 00010, así que nuevamente desplazamos los 3 bits a la izquierda, luego tenemos 10000, ahora compare con el número dado primero 16 == 16 en binario por lo que es cierto por lo que el número es divisible por 8.
CPP
// C++ program to check whether // the number is divisible by // 8 or not using bitwise operator #include <bits/stdc++.h> using namespace std; // function to check number is // div by 8 or not using bitwise // operator int Div_by_8(int n) { return (((n >> 3) << 3) == n); } // Driver program int main() { int n = 16; if (Div_by_8(n)) cout << "YES" << endl; else cout << "NO" << endl; return 0; }
Java
// Java program to check whether // the number is divisible by // 8 or not using bitwise operator import java.io.*; import java.util.*; class GFG { // function to check number is // div by 8 or not using bitwise // operator static boolean Div_by_8(int n) { return (((n >> 3) << 3) == n); } // Driver code public static void main (String[] args) { int n = 16; if (Div_by_8(n)) System.out.println("YES"); else System.out.println("NO"); } } // This code is contributed by Gitanjali
Python3
# Python program to check whether # the number is divisible by # 8 or not using bitwise operator import math # function to check number is # div by 8 or not using bitwise # operator def Div_by_8(n): return (((n >> 3) << 3) == n) # driver code n = 16 if (Div_by_8(n)): print("YES") else: print("NO") # This code is contributed by Gitanjali.
C#
// C# program to check whether // the number is divisible by // 8 or not using bitwise operator using System; class GFG { // function to check number is // div by 8 or not using bitwise // operator static bool Div_by_8(int n) { return (((n >> 3) << 3) == n); } // Driver code public static void Main () { int n = 16; if (Div_by_8(n)) Console.WriteLine("YES"); else Console.WriteLine("NO"); } } // This code is contributed by vt_m.
PHP
<?php // PHP program to check whether // the number is divisible by // 8 or not using bitwise operator // function to check number is // div by 8 or not using bitwise // operator function Div_by_8($n) { return ((($n >> 3) << 3) == $n); } // Driver program $n = 16; if (Div_by_8($n)) echo "YES"; else echo "NO"; //This code is contributed by mits. ?>
Javascript
<script> // javascript program to check whether // the number is divisible by // 8 or not using bitwise operator // function to check number is // div by 8 or not using bitwise // operator function Div_by_8(n) { return (((n >> 3) << 3) == n); } // Driver code var n = 16; if (Div_by_8(n)) document.write("YES"); else document.write("NO"); // This code is contributed by Princi Singh. </script>
YES
Complejidad de tiempo : O(1)
Complejidad espacial : O(1)