Šioje programoje išmoksite patikrinti, ar nurodytą skaičių galima išreikšti dviejų pirminių skaičių suma, ar ne. Tai daroma naudojant „Java“ kilpų ir pertraukų teiginius.
Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:
- „Java“ metodai
- „Java for Loop“
- „Java“, jei… kitas pareiškimas
Pavyzdys: pavaizduokite skaičių kaip dviejų pirminių skaičių sumą
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; ) )
Rezultatas
34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
Ankstesniame pavyzdyje mes sukūrėme checkPrime()
metodą, norėdami sužinoti, ar skaičius yra pagrindinis, ar ne. Metodas grąžinamas, true
jei perduotas skaičius yra pagrindinis.
Čia mes turime skaičių 34 . Programa bando patikrinti, ar 34 gali būti pavaizduota kaip dviejų pirminių skaičių suma.
Programos darbas
- Pirma, mes paleisti
for
kilpą nuoi = 2 to number / 2
. - Kilpos viduje
for
mes panaudojome duif
teiginius. Pirmasis teiginys patikrina, ar aš esu pagrindinis, ar ne.
Jei tiesa, antrasisif
teiginys patikrina, ar jisnumber - i
yra pagrindinis, ar ne. Taip yra todėl, kad i ir skaičiaus - i suma lygi skaičiui. - Jei antrasis teiginys taip pat yra
true
, tada galime sakyti, kad skaičius 34 yra galiojanti dviejų pirminių skaičių suma.