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>
YES
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)