Program Java pentru a verifica dacă un număr poate fi exprimat ca sumă de două numere prime

În acest program, veți învăța să verificați dacă un anumit număr poate fi exprimat ca o sumă de două numere prime sau nu. Acest lucru se face cu ajutorul buclelor și instrucțiunilor de rupere în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Metode Java
  • Java pentru buclă
  • Java dacă … altfel Declarație

Exemplu: Reprezentați un număr ca Suma a două numere prime

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

Ieșire

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

În exemplul de mai sus, am creat checkPrime()metoda pentru a afla dacă un număr este sau nu prim. Metoda revine truedacă numărul trecut este prim.

Aici avem un număr 34 . Programul încearcă să verifice dacă 34 poate fi reprezentat ca suma a două numere prime.

Lucrarea programului

  • Mai întâi, rulăm o forbuclă de la i = 2 to number / 2.
  • În interiorul forbuclei, am folosit două ifafirmații. Prima declarație verifică dacă i este prim sau nu.
    Dacă este adevărat, a doua ifafirmație verifică dacă number - ieste primă sau nu. Acest lucru se datorează faptului că suma lui i și a numărului - i este egală cu numărul.
  • Dacă și a doua afirmație este true, atunci putem spune că numărul 34 este o sumă validă a două numere prime.

Articole interesante...