Σε αυτό το πρόγραμμα, θα μάθετε να ελέγχετε αν ένας δεδομένος αριθμός μπορεί να εκφραστεί ως άθροισμα δύο πρώτων αριθμών ή όχι. Αυτό γίνεται με τη βοήθεια βρόχων και δηλώσεων διακοπής στην Java.
Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:
- Μέθοδοι Java
- Java για βρόχο
- Java αν… αλλιώς Δήλωση
Παράδειγμα: Αντιπροσωπεύστε έναν αριθμό ως άθροισμα δύο πρωταρχικών αριθμών
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; ) )
Παραγωγή
34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει τη checkPrime()
μέθοδο για να διαπιστώσουμε εάν ένας αριθμός είναι πρωταρχικός ή όχι. Η μέθοδος επιστρέφει true
εάν ο αριθμός που έχει περάσει είναι πρώτος.
Εδώ, έχουμε έναν αριθμό 34 . Το πρόγραμμα προσπαθεί να ελέγξει αν το 34 μπορεί να αναπαρασταθεί ως το άθροισμα των δύο πρώτων αριθμών.
Εργασία προγράμματος
- Πρώτα, τρέχουμε έναν
for
βρόχο απόi = 2 to number / 2
. - Μέσα στο
for
βρόχο, χρησιμοποιήσαμε δύοif
δηλώσεις. Η πρώτη δήλωση ελέγχει αν είμαι πρωταρχικός ή όχι.
Εάν είναι αλήθεια, η δεύτερηif
δήλωση ελέγχει εάνnumber - i
είναι πρωταρχική ή όχι. Αυτό συμβαίνει επειδή το άθροισμα των i και number - i είναι ίσο με τον αριθμό. - Εάν η δεύτερη δήλωση είναι επίσης
true
, τότε μπορούμε να πούμε ότι ο αριθμός 34 είναι ένα έγκυρο άθροισμα δύο πρώτων αριθμών.