Program Java ke kontrole, zda lze číslo vyjádřit jako součet dvou prvočísel

V tomto programu se naučíte zkontrolovat, zda lze dané číslo vyjádřit jako součet dvou prvočísel nebo ne. To se provádí pomocí smyček a příkazů break v Javě.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Metody Java
  • Java pro smyčku
  • Prohlášení Java, pokud … else

Příklad: Představte číslo jako součet dvou prvočísel

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

Výstup

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

Ve výše uvedeném příkladu jsme vytvořili checkPrime()metodu pro zjištění, zda je číslo prvočíslo nebo ne. Metoda se vrátí, truepokud je předané číslo prvočíslo.

Tady máme číslo 34 . Program se pokusí zkontrolovat, zda 34 může být reprezentováno jako součet dvou prvočísel.

Fungování programu

  • Nejprve spustíme forsmyčku z i = 2 to number / 2.
  • Uvnitř forsmyčky jsme použili dva ifpříkazy. První příkaz kontroluje, zda je i prvočíslo.
    Pokud má hodnotu true, druhý ifpříkaz zkontroluje, zda number - ije primární nebo ne. Je to proto, že součet i a čísla - i se rovná číslu.
  • Pokud je druhý výrok také true, pak můžeme říci, že číslo 34 je platný součet dvou prvočísel.

Zajímavé články...