Comprobar si un número es divisible por 8 usando operadores bit a bit

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)

Publicación traducida automáticamente

Artículo escrito por ajay0007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *