Comprobar que un número es par o impar sin operador de módulo

Dado un número, comprueba si es par o impar.

Ejemplos: 

Input: n = 11
Output: Odd

Input: n = 10
Output: Even
 

Método 1: Usando Loop. 
La idea es comenzar con una variable de bandera booleana como verdadera y cambiarla n veces. Si la variable indicadora recupera el valor original (que es verdadero), entonces n es par. De lo contrario, n es falsa.

A continuación se muestra la implementación de esta idea.  

C++

// A simple C++ program to check for
// even or odd
#include <iostream>
using namespace std;
 
// Returns true if n is even, else odd
bool isEven(int n)
{
    bool isEven = true;
    for (int i=1;  i <= n; i++)
        isEven = !isEven;
    return isEven;
}
 
// Driver code
int main()
{
    int n = 101;
    isEven(n) ? cout << "Even" : cout << "Odd";
    return 0;
}

Java

// A simple Java program to
// check for even or odd
 
class GFG {
     
    // Returns true if n
    // is even, else odd
    static boolean isEven(int n)
    {
        boolean isEven = true;
         
        for (int i = 1; i <= n; i++)
            isEven = !isEven;
             
        return isEven;
    }
     
     
    // Driver Code
    public static void main(String args[])
    {
         
        int n = 101;
        if(isEven(n))
            System.out.println("Even");
        else
            System.out.println("Odd");
         
    }
}
 
// This code is contributed by Sam007

Python3

# A simple Python program to
# check for even or odd
 
# Returns true if n is even,
# else odd
def isEven(n):
    isEven = True;
    for i in range(1, n+1):
        if isEven == True:
            isEven = False;
        else:
            isEven = True;
 
    return isEven;
 
# Driver code   
n = 101;
if isEven(n) == True:
    print ("Even");
else:
    print ("Odd");
     
# This code is contributed by
# Manish Shaw (manishshaw1)

C#

// A simple C# program to check for
// even or odd
using System;
 
public class GFG {
     
    // Returns true if n is even,
    // else odd
    static bool isEven(int n)
    {
        bool isEven = true;
         
        for (int i = 1; i <= n; i++)
            isEven = !isEven;
             
        return isEven;
    }
     
    // Driver code
    public static void Main()
    {
        int n = 101;
        if(isEven(n))
            Console.Write("Even");
        else
            Console.Write("Odd");
    }
}
 
// This code is contributed by Sam007.

PHP

<?php
// A simple PHP program to check for
// even or odd
 
// Returns true if n is even,
// else odd
function isEven($n)
{
    $isEven = true;
    for ($i = 1; $i <= $n; $i++)
        $isEven = !$isEven;
    return $isEven;
}
 
    // Driver code
    $n = 101;
    $is=isEven($n) ? "Even" : "Odd";
    echo "$is"
 
// This code is contributed by ajit
?>

Javascript

<script>
 
// A simple Javascript program to check
// for even or odd
 
// Returns true if n is even,
// else odd
function isEven(n)
{
    let isEven = true;
       
    for(let i = 1; i <= n; i++)
        isEven = !isEven;
           
    return isEven;
}
 
// Driver code
let n = 101;
if (isEven(n))
    document.write("Even");
else
    document.write("Odd");
     
// This code is contributed by mukesh07
 
</script>
Producción: 

Odd

 

Complejidad de tiempo : O(n)

Espacio Auxiliar: O(1)

Método 2: Multiplique y divida por 2. Divida el número por 2 y multiplique por 2 si el resultado es el mismo que el ingresado, entonces es un número par; de lo contrario, es un número impar.

C++

// A simple C++ program to check for
// even or odd
#include <iostream>
using namespace std;
 
// Returns true if n is even, else odd
bool isEven(int n)
{
    // Return true if n/2 does not result
    // in a float value.
    return ((n / 2) * 2 == n);
}
 
// Driver code
int main()
{
    int n = 101;
    isEven(n) ? cout << "Even" : cout << "Odd";
    return 0;
}

Java

// A simple Java program
// to check for even or odd
 
class GFG {
     
// Returns true if n
// is even, else odd
static boolean isEven(int n)
{
     
    // Return true if
    // n/2 does not result
    // in a float value.
    return ((n / 2) * 2 == n);
}
 
// Driver code
public static void main(String[] args)
{
    int n = 101;
    if(isEven(n) != false)
        System.out.print( "Even" );
    else
        System.out.print( "Odd" );
}
}
 
// This code is contributed by
// Smitha Dinesh Semwal.

Python3

# A simple Python 3 program
# to check for even or odd
 
# Returns true if n
# is even, else odd
def isEven(n):
 
     
    # Return true if
    # n/2 does not result
    # in a float value.
    return (int(n / 2) * 2 == n)
 
 
# Driver code
n = 101
if(isEven(n) != False):
    print("Even")
else:
    print("Odd")
 
# This code is contributed by
# Smitha Dinesh Semwal.

C#

// A simple C# program
// to check for even or odd
using System;
class GFG {
     
// Returns true if n
// is even, else odd
static bool isEven(int n)
{
     
    // Return true if
    // n/2 does not result
    // in a float value.
    return ((n / 2) * 2 == n);
}
 
// Driver code
public static void Main(String[] args)
{
    int n = 101;
    if(isEven(n) != false)
        Console.Write("Even");
    else
        Console.Write("Odd");
}
}
 
// This code is contributed by
// Smitha Dinesh Semwal.

PHP

<?php
// A simple PHP program to
// check for even or odd
 
// Returns true if n
// is even, else odd
function isEven($n)
{
    // Return true if n/2
    // does not result
    // in a float value.
    return ((int)($n / 2) * 2 == $n);
}
 
// Driver code
$n = 101;
if(isEven($n))
    echo ("Even");
else
    echo ("Odd");
     
// This code is contributed by
// Manish Shaw (manishshaw1)
?>

Javascript

<script>
 
// A simple Javascript program to
// check for even or odd
 
// Returns true if n is even,
// else odd
function isEven(n)
{
     
    // Return true if n/2 does not result
    // in a float value.
    return (parseInt(n / 2, 10) * 2 == n);
}
 
// Driver code
let n = 101;
isEven(n) ? document.write("Even") :
            document.write("Odd");
             
// This code is contributed by divyeshrabadiya07
 
</script>
Producción : 

Odd

 

Complejidad de tiempo : O(1)

Espacio Auxiliar: O(1)

Método 3: Usar el operador bit a bit &. 
Una mejor solución es utilizar operadores bit a bit. Necesitamos verificar si el último bit es 1 o no. Si el último bit es 1, el número es impar; de lo contrario, siempre es par.

Explicación: 

 input : 5    // odd
   00000101              
 & 00000001                
--------------                
   00000001       
--------------

input : 8     //even
   00001000              
 & 00000001                 
--------------               
   00000000        
--------------

A continuación se muestra la implementación de la idea. 

C++

// A simple C++ program to check for
// even or odd
#include <iostream>
using namespace std;
 
// Returns true if n is even, else odd
bool isEven(int n)
{
    // n&1 is 1, then odd, else even
    return (!(n & 1));
}
 
// Driver code
int main()
{
    int n = 101;
    isEven(n) ? cout << "Even" : cout << "Odd";
    return 0;
}

Java

// A simple Java program to check for
// even or odd
import java.io.*;
import java.util.*;
 
public class GFG {
      
    // Returns 0 if n
    // is even, else odd
    static int isEven(int n)
    {
          
        // n&1 is 1, then
        // odd, else even
        return (n & 1);
    }
      
    // Driver code
    public static void main(String args[])
    {
        int n = 101;
        if(isEven(n)==0)
            System.out.print("Even");
        else
            System.out.print("Odd");
    }
}
  
// This code is contributed
// by Manish Shaw (manishshaw1)

Python3

# A simple Python program to
# check for even or odd
# Returns 0 if n
# is even, else odd
def isEven(n) :
      
    # n&1 is 1, then
    # odd, else even
    return (n & 1);
  
# Driver code
n = 101;
if(isEven(n) == 0) :
    print ("Even");
else :
    print ("Odd");
      
# This code is contributed
# by Manish Shaw (manishshaw1)

C#

// A simple C# program to check for
// even or odd
using System;
using System.Collections.Generic;
 
class GFG {
     
    // Returns 0 if n
    // is even, else odd
    static int isEven(int n)
    {
         
        // n&1 is 1, then
        // odd, else even
        return (n & 1);
    }
     
    // Driver code
    public static void Main()
    {
        int n = 101;
        if(isEven(n)==0)
            Console.Write("Even");
        else
            Console.Write("Odd");
    }
}
 
// This code is contributed
// by Manish Shaw (manishshaw1)

PHP

<?php
// A simple PHP program to
// check for even or odd
// Returns 0 if n
// is even, else odd
function isEven($n)
{
     
    // n&1 is 1, then
    // odd, else even
    return ($n & 1);
}
 
// Driver code
$n = 101;
if(isEven($n) == 0)
    echo ("Even");
else
    echo ("Odd");
     
// This code is contributed
// by Manish Shaw (manishshaw1)
?>

Javascript

<script>
    // A simple Javascript program to check for even or odd
     
    // Returns true if n is even, else odd
    function isEven(n)
    {
        // n&1 is 1, then odd, else even
        return (!(n & 1));
    }
     
    let n = 101;
    isEven(n) ? document.write("Even") : document.write("Odd");
 
</script>
Producción : 

Odd

 

Complejidad de tiempo : O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por RahulKumarSingh 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 *