Java-ohjelma sen tarkistamiseksi, voidaanko luku ilmaista kahden alkuluvun summana

Tässä ohjelmassa opit tarkistamaan, voidaanko annettu luku ilmaista kahden alkuluvun summana vai ei. Tämä tehdään Java-silmukoiden ja katkaisulausekkeiden avulla.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:

  • Java-menetelmät
  • Java silmukalle
  • Java jos… muuten lausunto

Esimerkki: Esitä luku kahden alkuluvun summana

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

Tuotos

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

Yllä olevassa esimerkissä olemme luoneet checkPrime()menetelmän selvittääksemme, onko luku alkuluku vai ei. Menetelmä palaa, truejos välitetty luku on ensisijainen.

Täällä meillä on numero 34 . Ohjelma yrittää tarkistaa, voidaanko 34 esittää kahden alkuluvun summana.

Ohjelman työskentely

  • Ensinnäkin suoritamme forsilmukan i = 2 to number / 2.
  • forSilmukan sisällä käytimme kahta iflausetta. Ensimmäinen lauseke tarkistaa, onko i ensisijainen vai ei.
    Jos tosi, toinen iflause tarkistaa, onko number - ise ensisijainen vai ei. Tämä johtuu siitä, että i: n ja luvun - i summa on yhtä suuri kuin luku.
  • Jos toinen lause on myös true, voimme sanoa, että luku 34 on kelvollinen kahden alkuluvun summa.

Mielenkiintoisia artikkeleita...