„C ++“ programa, skirta patikrinti, ar skaičius gali būti išreikštas kaip dviejų pirminių skaičių suma

Pavyzdys, kaip patikrinti, ar sveikasis skaičius (kurį įvedė vartotojas) gali būti išreikštas dviejų visų galimų derinių, naudojant funkcijas, pirminių skaičių suma.

Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C ++ programavimo temas:

  • „C ++“ - „Loop“
  • C ++, jei, jei… dar kitaip, ir įdėta, jei … kita
  • C ++ funkcijos
  • Vartotojo nustatytų funkcijų tipai C ++

Ši programa paima iš vartotojo teigiamą sveikąjį skaičių ir patikrina, ar tą skaičių galima išreikšti dviejų pirminių skaičių suma.

Jei skaičių galima išreikšti dviejų pirminių skaičių suma, išvestis rodo pirminių skaičių derinį.

Šiai užduočiai atlikti sukuriama vartotojo apibrėžta funkcija pirminiam skaičiui patikrinti.

Pavyzdys: Patikrinkite, ar skaičių galima išreikšti kaip dviejų pirminių skaičių sumą

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

Rezultatas

 Įveskite teigiamą sveikąjį skaičių: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

Šioje programoje mes naudojame checkPrime()funkciją, kad patikrintume, ar skaičius yra pirminis, ar ne.

Be main(), mes numerį iš vartotojo ir laikykite jį kintamojo n.

Mes taip pat inicializuojame boolkintamą vėliavą false. Mes naudojame šį kintamąjį norėdami nustatyti, ar įvesties skaičių galima išreikšti dviejų pirminių skaičių suma.

Tada kartojame kilpą nuo i = 2iki i = n/2. Kiekvienoje iteracijoje patikriname, ar i yra pagrindinis skaičius, ar ne.

Jei i yra pagrindinis, mes patikriname, ar n - i yra pagrindinis, ar ne.

Jei n - i taip pat yra pirminis, tada mes žinome, kad n gali būti išreikšta dviejų pirminių skaičių i ir n - i suma.

Taigi, mes atspausdiname rezultatą ekrane ir pakeičiame žymės reikšmę į true. Priešingu atveju vėliava lieka false.

Šis procesas tęsiasi tol, kol baigiasi ciklas.

Jei vėliava vis dar yra false, mes žinome, kad n negalima išreikšti kaip dviejų pradų sumos, ir mes tą pranešimą atspausdiname ekrane.

Įdomios straipsniai...