Program Java na kontrolu, či je možné číslo vyjadriť ako súčet dvoch prvočísel

V tomto programe sa naučíte skontrolovať, či dané číslo možno vyjadriť ako súčet dvoch prvočísiel alebo nie. To sa deje pomocou príkazov loop a break v Jave.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Metódy Java
  • Java pre slučku
  • Vyhlásenie Java, ak … else

Príklad: Predstavte číslo ako súčet dvoch 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ýkon

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

Vo vyššie uvedenom príklade sme vytvorili checkPrime()metódu na zistenie, či je číslo prvočíslo alebo nie. Metóda sa vráti, trueak je zadané číslo prvočíslo.

Tu máme číslo 34 . Program sa pokúša skontrolovať, či 34 možno reprezentovať ako súčet dvoch prvočísiel.

Fungovanie programu

  • Najskôr spustíme forslučku z i = 2 to number / 2.
  • Vo vnútri forcyklu sme použili dva ifvýroky. Prvý príkaz kontroluje, či je i prvočíslo.
    Ak je to pravda, druhý ifpríkaz skontroluje, či number - ije prvočíslo alebo nie. Je to tak preto, lebo súčet i a čísla - i sa rovná číslu.
  • Ak je aj druhý výrok true, potom môžeme povedať, že číslo 34 je platný súčet dvoch prvočísiel.

Zaujímavé články...