C ++ -ohjelma tarkistamaan, voidaanko luku ilmaista kahden alkuluvun summana

Esimerkki sen tarkistamisesta, voidaanko kokonaisluku (käyttäjän syöttämä) ilmaista funktioiden avulla kaikkien mahdollisten yhdistelmien kahden alkuluvun summana.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C ++ -ohjelmointiaiheista:

  • C ++ silmukalle
  • C ++ jos, jos… muu ja sisäkkäinen, jos … muuten
  • C ++ -toiminnot
  • Käyttäjän määrittelemien toimintojen tyypit C ++: ssa

Tämä ohjelma ottaa käyttäjältä positiivisen kokonaisluvun ja tarkistaa, voidaanko luku ilmaista kahden alkuluvun summana.

Jos luku voidaan ilmaista kahden alkuluvun summana, lähtö näyttää alkulukujen yhdistelmän.

Tämän tehtävän suorittamiseksi luodaan käyttäjän määrittämä toiminto alkuluvun tarkistamiseksi.

Esimerkki: Tarkista, voidaanko luku ilmaista kahden alkuluvun 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; ) 

Tuotos

 Syötä positiivinen kokonaisluku: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

Tässä ohjelmassa käytämme checkPrime()funktiota tarkistamaan, onko luku alkuluku vai ei.

Sisään main()otamme käyttäjältä numeron ja tallennamme sen muuttujaan n.

Alustamme myös boolmuuttujan lipun false. Tämän muuttujan avulla määritetään, voidaanko syötetty numero ilmaista kahden alkuluvun summana.

Sitten kerrata silmukan välillä i = 2on i = n/2. Jokaisessa iteraatiossa tarkistamme, onko i alkuluku vai ei.

Jos i on prime, tarkistamme onko n - i prime.

Jos n - i on myös alkuluku, niin tiedämme, että n voidaan ilmaista kahden alkuluvun i ja n - i summana.

Joten tulostamme tuloksen näytölle ja vaihdamme lipun arvoksi true. Muuten lippu jää false.

Tämä prosessi jatkuu, kunnes silmukka loppuu.

Jos lippu on edelleen false, tiedämme, että n: tä ei voida ilmaista kahden kappaleen summana, ja tulostamme kyseisen viestin ruudulle.

Mielenkiintoisia artikkeleita...