Program v C ++ na kontrolu, či číslo môže byť vyjadrené ako súčet dvoch prvočísel

Príklad na kontrolu, či celé číslo (zadané používateľom) možno vyjadriť ako súčet dvoch prvočísel všetkých možných kombinácií s použitím funkcií.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich programovacích tém C ++:

  • C ++ pre slučku
  • C ++ ak, ak … inak a Vnorené, ak … inak
  • Funkcie C ++
  • Typy funkcií definovaných používateľom v jazyku C ++

Tento program berie od používateľa kladné celé číslo a kontroluje, či je možné toto číslo vyjadriť ako súčet dvoch prvočísiel.

Ak je možné číslo vyjadriť ako súčet dvoch prvočísel, výstup ukazuje kombináciu prvočísiel.

Na vykonanie tejto úlohy je vytvorená užívateľom definovaná funkcia na kontrolu prvočísla.

Príklad: Skontrolujte, či je možné číslo vyjadriť ako súčet dvoch 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ýkon

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

V tomto programe pomocou tejto checkPrime()funkcie kontrolujeme, či je číslo prvočíslo alebo nie.

V main(), odoberieme číslo od používateľa a uložíme ho do premennej n.

Inicializujeme tiež boolpríznak premennej na false. Túto premennú používame na určenie, či možno vstupné číslo vyjadriť ako súčet dvoch prvočísel.

Potom iterujeme slučku od i = 2do i = n/2. V každej iterácii kontrolujeme, či i je prvočíslo alebo nie.

Ak je i prvočíslo, skontrolujeme, či n - i je prvočíslo alebo nie.

Ak n - i je tiež prvočíslo, potom vieme, že n možno vyjadriť ako súčet dvoch prvočísel i a n - i.

Výsledok teda vytlačíme na obrazovku a zmeníme hodnotu vlajky na true. V opačnom prípade vlajka zostane false.

Tento proces pokračuje, kým sa slučka neskončí.

Ak je príznak stále false, potom vieme, že n nemožno vyjadriť ako súčet dvoch prvočísel, a správu vytlačíme na obrazovku.

Zaujímavé články...