En este programa, aprenderá a verificar si un número dado se puede expresar como una suma de dos números primos o no. Esto se hace con la ayuda de bucles y declaraciones de interrupción en Java.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:
- Métodos Java
- Java para Loop
- Declaración if … else de Java
Ejemplo: representar un número como suma de dos números primos
public class Main ( public static void main(String() args) ( int number = 34; boolean flag = false; for (int i = 2; i <= number / 2; ++i) ( // condition for i to be a prime number if (checkPrime(i)) ( // condition for n-i to be a prime number if (checkPrime(number - i)) ( // n = primeNumber1 + primeNumber2 System.out.printf("%d = %d + %d", number, i, number - i); flag = true; ) ) ) if (!flag) System.out.println(number + " cannot be expressed as the sum of two prime numbers."); ) // Function to check prime number static boolean checkPrime(int num) ( boolean isPrime = true; for (int i = 2; i <= num / 2; ++i) ( if (num % i == 0) ( isPrime = false; break; ) ) return isPrime; ) )
Salida
34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
En el ejemplo anterior, hemos creado el checkPrime()
método para encontrar si un número es primo o no. El método devuelve true
si el número pasado es primo.
Aquí tenemos un número 34 . El programa intenta comprobar si 34 se puede representar como la suma de dos números primos.
Trabajo del programa
- Primero, ejecutamos un
for
bucle desdei = 2 to number / 2
. - Dentro del
for
ciclo, usamos dosif
declaraciones. La primera declaración verifica si i es primo o no.
Si es cierto, la segundaif
declaración verifica sinumber - i
es primo o no. Esto se debe a que la suma de i y el número - i es igual a número. - Si la segunda afirmación también lo es
true
, entonces podemos decir que el número 34 es una suma válida de dos números primos.