C ++ programm kontrollimaks, kas arvu saab väljendada kahe peaarvu summana

Näide selle kohta, kas täisarvu (kasutaja poolt sisestatud) saab väljendada funktsioonide kasutamisel kõigi võimalike kombinatsioonide kahe algarvu summana.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C ++ programmeerimise teemadest:

  • C ++ aasale
  • C ++ kui, kui … muul juhul ja Pesatud, kui … muul juhul
  • C ++ funktsioonid
  • Kasutaja määratud funktsioonide tüübid C ++ keeles

See programm võtab kasutajalt positiivse täisarvu ja kontrollib, kas seda arvu saab väljendada kahe algarvu summana.

Kui arvu saab väljendada kahe algarvu summana, näitab väljund algarvude kombinatsiooni.

Selle ülesande täitmiseks luuakse algarvu kontrollimiseks kasutaja määratletud funktsioon.

Näide: kontrollige, kas arvu saab väljendada kahe algarvu summana

 #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äljund

 Sisestage positiivne täisarv: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

Selles programmis checkPrime()kontrollime funktsiooni, kas number on algarv või mitte.

Aastal main()võtame kasutajalt numbri ja salvestame selle muutujasse n.

Samuti lähtestame boolmuutuja lipu false. Selle muutuja abil määrame, kas sisendarvu saab väljendada kahe algarvu summana.

Seejärel kordame tsüklit punktist i = 2kuni i = n/2. Igas iteratsioonis kontrollime, kas i on algarv või mitte.

Kui i on algarv, kontrollime, kas n - i on algarv või mitte.

Kui n - i on ka algarv, siis teame, et n saab väljendada kahe algarvu i ja n - i summana.

Niisiis, printime tulemuse ekraanile ja muudame lipu väärtuseks true. Muidu jääb lipp alles false.

See protsess jätkub, kuni silmus lõpeb.

Kui lipp on endiselt paigas false, siis teame, et n ei saa väljendada kahe algarvu summana, ja printime selle teate ekraanile.

Huvitavad Artiklid...