Program w języku Java do sprawdzania, czy liczbę można wyrazić jako sumę dwóch liczb pierwszych

W tym programie nauczysz się sprawdzać, czy daną liczbę można wyrazić jako sumę dwóch liczb pierwszych, czy nie. Odbywa się to za pomocą pętli i instrukcji przerwania w Javie.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Metody Java
  • Java for Loop
  • Instrukcja Java if… else

Przykład: Przedstaw liczbę jako sumę dwóch liczb pierwszych

 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; ) )

Wynik

 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17

W powyższym przykładzie stworzyliśmy checkPrime()metodę sprawdzania, czy liczba jest liczbą pierwszą, czy nie. Metoda zwraca, truejeśli przekazana liczba jest liczbą pierwszą.

Tutaj mamy liczbę 34 . Program próbuje sprawdzić, czy 34 można przedstawić jako sumę dwóch liczb pierwszych.

Działanie programu

  • Najpierw uruchamiamy forpętlę z i = 2 to number / 2.
  • Wewnątrz forpętli użyliśmy dwóch ifinstrukcji. Pierwsza instrukcja sprawdza, czy i jest liczbą pierwszą, czy nie.
    Jeśli prawda, druga ifinstrukcja sprawdza, czy number - ijest liczbą pierwszą, czy nie. Dzieje się tak, ponieważ suma i oraz liczby - i jest równa liczbie.
  • Jeśli drugie stwierdzenie również jest true, to możemy powiedzieć, że liczba 34 jest poprawną sumą dwóch liczb pierwszych.

Interesujące artykuły...