Dividir el número dado en dos partes pares

Dado un número N , la tarea es verificar si este número se puede dividir en 2 partes pares.

Ejemplos:

Entrada: N = 8
Salida: SI
Explicación: 8 se puede dividir en dos partes pares de dos maneras, 2, 6 o 4, 4 ya que ambos son pares.

Entrada: N = 5
Salida: NO

 

Enfoque ingenuo: verifique todos los pares de números hasta N , de modo que ambos sean pares y ambos sumen N . Si es posible, escriba Sí, de lo contrario No.

Complejidad de Tiempo: O(N 2 )
Espacio Auxiliar: O(1)

Enfoque eficiente: tras la observación, se puede notar que cualquier número par se puede expresar como la suma de dos números pares excepto 2 y ningún número par se puede sumar para formar un número impar.

A continuación se muestra la implementación del enfoque anterior.

C++

// C++ code to implement above approach
#include <bits/stdc++.h>
using namespace std;
  
// Divide number into 2 even parts
bool divNum(int n)
{
    return (n <= 2
                ? false
                : (n % 2 == 0
                       ? true
                       : false));
}
  
// Driven Program
int main()
{
    int n = 8;
    cout << (divNum(n) ? "YES" : "NO")
         << endl;
    return 0;
}

Java

// Java code to implement above approach
import java.util.*;
public class GFG {
  
  // Divide number into 2 even parts
  static boolean divNum(int n)
  {
    return (n <= 2 ? false
            : (n % 2 == 0 ? true : false));
  }
  
  // Driven Program
  public static void main(String args[])
  {
    int n = 8;
    System.out.println(divNum(n) ? "YES" : "NO");
  }
}
  
// This code is contributed by Samim Hossain Mondal.

Python

# Pyhton program for above approach
  
# Divide number into 2 even parts
def divNum(n):
    ans = False if n <= 2 else True if n % 2 == 0 else False                       
    return ans
  
# Driver Code
n = 8
  
if(divNum(n) == True):
    print("YES")
else:
    print("NO")
  
# This code is contributed by Samim Hossain Mondal.

C#

// C# code to implement above approach
using System;
class GFG {
  
    // Divide number into 2 even parts
    static bool divNum(int n)
    {
        return (n <= 2 ? false
                       : (n % 2 == 0 ? true : false));
    }
  
    // Driven Program
    public static void Main()
    {
        int n = 8;
        Console.WriteLine(divNum(n) ? "YES" : "NO");
    }
}
  
// This code is contributed by ukasp.

Javascript

<script>
// Javascript code to implement above approach
  
// Divide number into 2 even parts
function divNum(n)
{
    return (n <= 2
                ? false
                : (n % 2 == 0
                       ? true
                       : false));
}
  
// Driven Program
let n = 8;
document.write((divNum(n) ? "YES" : "NO") + "\n");
  
// This code is contributed by Samim Hossin Mondal.
</script>
Producción

YES

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

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