Program C ++ ke kontrole, zda lze číslo vyjádřit jako součet dvou prvočísel

Příklad ke kontrole, zda lze celé číslo (zadané uživatelem) vyjádřit jako součet dvou prvočísel všech možných kombinací s použitím funkcí.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata C ++:

  • C ++ pro smyčku
  • C ++ if, if … else a Nested if … else
  • Funkce C ++
  • Typy uživatelsky definovaných funkcí v C ++

Tento program přebírá od uživatele kladné celé číslo a kontroluje, zda lze toto číslo vyjádřit jako součet dvou prvočísel.

Pokud lze číslo vyjádřit jako součet dvou prvočísel, výstup ukazuje kombinaci prvočísel.

K provedení tohoto úkolu je vytvořena uživatelem definovaná funkce ke kontrole prvočísla.

Příklad: Zkontrolujte, zda lze číslo vyjádřit jako součet dvou prvočísel

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

Výstup

 Zadejte kladné celé číslo: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

V tomto programu používáme checkPrime()funkci ke kontrole, zda je číslo prvočíslo nebo ne.

V main(), vezmeme číslo od uživatele a uložíme jej do proměnné n.

Také inicializujeme boolproměnný příznak na false. Tuto proměnnou používáme k určení, zda lze vstupní číslo vyjádřit jako součet dvou prvočísel.

Poté iterujeme smyčku od i = 2do i = n/2. V každé iteraci kontrolujeme, zda i je prvočíslo nebo ne.

Pokud je i prvočíslo, zkontrolujeme, zda n - i je prvočíslo nebo ne.

Pokud n - i je také prvočíslo, pak víme, že n lze vyjádřit jako součet dvou prvočísel i a n - i.

Výsledek tedy vytiskneme na obrazovku a změníme hodnotu příznaku na true. Jinak vlajka zůstane false.

Tento proces pokračuje, dokud smyčka neskončí.

Pokud je příznak stále false, pak víme, že n nelze vyjádřit jako součet dvou prvočísel, a vytiskneme tuto zprávu na obrazovku.

Zajímavé články...