In dit programma leer je controleren of een bepaald getal kan worden uitgedrukt als een som van twee priemgetallen of niet. Dit wordt gedaan met behulp van loops en break-statements in Java.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:
- Java-methoden
- Java voor Loop
- Java if… else-instructie
Voorbeeld: geef een getal weer als som van twee priemgetallen
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; ) )
Uitvoer
34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
In het bovenstaande voorbeeld hebben we de checkPrime()
methode gemaakt om te bepalen of een getal een priemgetal is of niet. De methode keert terug true
als het doorgegeven getal een priemgetal is.
Hier hebben we een nummer 34 . Het programma probeert te controleren of 34 kan worden weergegeven als de som van twee priemgetallen.
Werking van programma
- Eerst lopen we een
for
lus vani = 2 to number / 2
. - Binnen de
for
lus hebben we tweeif
uitspraken gebruikt. De eerste instructie controleert of i een priemgetal is of niet.
Indien waar, controleert de tweedeif
instructie of hetnumber - i
een priemgetal is of niet. Dit komt doordat de som van i en getal - i gelijk is aan getal. - Als de tweede stelling dat ook is
true
, kunnen we zeggen dat het getal 34 een geldige som is van twee priemgetallen.