Dado un entero positivo N . La tarea es decidir si el número entero se puede dividir en dos partes pares positivas desiguales o no.
Ejemplos:
Entrada: N = 8
Salida: SÍ
Explicación: 8 se puede dividir en dos partes pares diferentes, es decir, 2 y 6.Entrada: N = 5
Salida: NO
Explicación: 5 no se puede dividir en dos partes pares de ninguna manera.Entrada: N = 4
Salida: NO
Explicación: 4 se puede dividir en dos partes pares, 2 y 2. Dado que los números son iguales, la salida es NO.
Prerrequisitos: Conocimiento de sentencias condicionales if-else .
Enfoque: El concepto central del problema radica en la siguiente observación:
La suma de dos números pares cualesquiera es siempre par. Por el contrario, cualquier número par se puede expresar como la suma de dos números pares.
Pero aquí hay dos excepciones.
- El número 2 es una excepción aquí. Solo se puede expresar como la suma de dos números impares (1 + 1).
- El número 4 solo se puede expresar como la suma de números pares iguales (2 + 2).
Por lo tanto, es posible expresar N como la suma de dos números pares solo si N es par y no igual a 2 o 4 . Si N es impar, es imposible dividirlo en dos partes pares. Siga los pasos que se mencionan a continuación:
- Compruebe si N = 2 o N = 4.
- En caso afirmativo, escriba NO.
- De lo contrario, compruebe si N es par (es decir, un múltiplo de 2)
- En caso afirmativo, escriba SÍ.
- De lo contrario, imprima NO.
A continuación se muestra la implementación del enfoque anterior.
C++
// C++ code to implement above approach #include<iostream> using namespace std; // Function to check if N can be divided // into two unequal even parts bool evenParts(int N) { // Check if N is equal to 2 or 4 if(N == 2 || N == 4) return false; // Check if N is even if(N % 2 == 0) return true; else return false; } //Driver code int main(){ int N = 8; // Function call bool ans = evenParts(N); if(ans) std::cout << "YES" << '\n'; else std::cout << "NO" << '\n'; return 0; }
Java
// Java code to implement above approach import java.util.*; public class GFG { // Function to check if N can be divided // into two unequal even parts static boolean evenParts(int N) { // Check if N is equal to 2 or 4 if(N == 2 || N == 4) return false; // Check if N is even if(N % 2 == 0) return true; else return false; } // Driver code public static void main(String args[]) { int N = 8; // Function call boolean ans = evenParts(N); if(ans) System.out.println("YES"); else System.out.println("NO"); } } // This code is contributed by Samim Hossain Mondal.
Python3
# Python code for the above approach # Function to check if N can be divided # into two unequal even parts def evenParts(N): # Check if N is equal to 2 or 4 if (N == 2 or N == 4): return False # Check if N is even if (N % 2 == 0): return True else: return False # Driver code N = 8 # Function call ans = evenParts(N) if (ans): print("YES") else: print("NO") # This code is contributed by Saurabh Jaiswal.
C#
// C# code to implement above approach using System; class GFG { // Function to check if N can be divided // into two unequal even parts static bool evenParts(int N) { // Check if N is equal to 2 or 4 if(N == 2 || N == 4) return false; // Check if N is even if(N % 2 == 0) return true; else return false; } // Driver code public static void Main() { int N = 8; // Function call bool ans = evenParts(N); if(ans) Console.Write("YES" + '\n'); else Console.Write("NO" + '\n'); } } // This code is contributed by Samim Hossain Mondal.
Javascript
<script> // JavaScript code for the above approach // Function to check if N can be divided // into two unequal even parts function evenParts(N) { // Check if N is equal to 2 or 4 if (N == 2 || N == 4) return false; // Check if N is even if (N % 2 == 0) return true; else return false; } // Driver code let N = 8; // Function call let ans = evenParts(N); if (ans) document.write("YES" + '<br>') else document.write("NO" + '<br>') // This code is contributed by Potta Lokesh </script>
YES
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)