Program w C ++ do sprawdzania, czy liczba może być wyrażona jako suma dwóch liczb pierwszych

Przykład sprawdzenia, czy liczbę całkowitą (wprowadzoną przez użytkownika) można wyrazić jako sumę dwóch liczb pierwszych wszystkich możliwych kombinacji za pomocą funkcji.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w języku C ++:

  • C ++ dla pętli
  • C ++ if, if… else i Nested if… else
  • Funkcje C ++
  • Typy funkcji zdefiniowanych przez użytkownika w C ++

Ten program pobiera dodatnią liczbę całkowitą od użytkownika i sprawdza, czy można ją wyrazić jako sumę dwóch liczb pierwszych.

Jeśli liczbę można wyrazić jako sumę dwóch liczb pierwszych, wynik przedstawia kombinację liczb pierwszych.

Aby wykonać to zadanie, tworzona jest funkcja zdefiniowana przez użytkownika, która sprawdza liczbę pierwszą.

Przykład: Sprawdź, czy liczbę można wyrazić jako sumę dwóch liczb pierwszych

 #include using namespace std; bool checkPrime(int n); int main() ( int n, i; bool flag = false; cout <> n; for(i = 2; i <= n/2; ++i) ( if (checkPrime(i)) ( if (checkPrime(n - i)) ( cout << n << " = " << i << " + " << n-i << endl; flag = true; ) ) ) if (!flag) cout << n << " can't be expressed as sum of two prime numbers."; return 0; ) // Check prime number bool checkPrime(int n) ( int i; bool isPrime = true; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for(i = 2; i <= n/2; ++i) ( if(n % i == 0) ( isPrime = false; break; ) ) ) return isPrime; ) 

Wynik

 Wpisz dodatnią liczbę całkowitą: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

W tym programie używamy checkPrime()funkcji do sprawdzenia, czy liczba jest liczbą pierwszą, czy nie.

W programie main()pobieramy liczbę od użytkownika i przechowujemy ją w zmiennej n.

Inicjalizujemy również boolflagę zmiennej do false. Używamy tej zmiennej do określenia, czy liczbę wejściową można wyrazić jako sumę dwóch liczb pierwszych.

Następnie wykonujemy pętlę od i = 2do i = n/2. W każdej iteracji sprawdzamy, czy i jest liczbą pierwszą, czy nie.

Jeśli i jest liczbą pierwszą, sprawdzamy, czy n - i jest liczbą pierwszą, czy nie.

Jeśli n - i jest również liczbą pierwszą, to wiemy, że n można wyrazić jako sumę dwóch liczb pierwszych i oraz n - i.

Zatem wypisujemy wynik na ekranie i zmieniamy wartość flagi na true. W przeciwnym razie flaga pozostaje false.

Ten proces trwa do zakończenia pętli.

Jeśli flaga jest nadal false, to wiemy, że n nie może być wyrażone jako suma dwóch liczb pierwszych i wypisujemy tę wiadomość na ekranie.

Interesujące artykuły...