Dividir un número en dos partes pares desiguales

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:
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:

  1. Compruebe si N = 2 o N = 4.
  2. En caso afirmativo, escriba NO.
  3. De lo contrario, compruebe si N es par (es decir, un múltiplo de 2)
  4. En caso afirmativo, escriba SÍ.
  5. 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>
Producción

YES

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

Publicación traducida automáticamente

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