C ++ -ohjelma tarkistaaksesi onko numero ensisijainen vai ei

Esimerkki sen tarkistamisesta, onko kokonaisluku (käyttäjän kirjoittama) alkuluku vai ei sitä käytettäessä silmukalle ja jos… muuta käskyä.

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

  • C ++ jos, jos… muu ja sisäkkäinen, jos … muuten
  • C ++ silmukalle
  • C ++ tauko ja jatka lausuntoa

Positiivinen kokonaisluku, joka on jaettavissa vain yhdellä ja joka itse tunnetaan alkuluvuna.

Esimerkiksi: 13 on alkuluku, koska se on jaettavissa vain luvuilla 1 ja 13, mutta 15 ei ole alkuluku, koska se on jaollinen luvuilla 1, 3, 5 ja 15.

Huomaa: 0 ja 1 eivät ole alkulukuja.

Esimerkki: Tarkista pääluku

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 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; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Tuotos

 Syötä positiivinen kokonaisluku: 29 29 on alkuluku.

Tämä ohjelma ottaa käyttäjältä positiivisen kokonaisluvun ja tallentaa sen muuttujaan n.

Huomaa, että looginen muuttuja isPrime alustetaan trueohjelman alkuun.

Koska 0 ja 1 eivät ole alkulukuja, tarkistamme ensin, onko syötetty numero yksi näistä numeroista vai ei. Jos syötetty numero on joko 0 tai 1 , isPrimen arvoksi asetetaan false.

Muuten isPrimen alkuarvo jätetään muuttumattomaksi ja suoritetaan forsilmukka, joka tarkistaa, onko käyttäjän syöttämä numero täysin jaettavissa i: llä vai ei.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

forSilmukka kulkee i == 2kohteeseen i <= n / 2ja kasvattaa i: n arvo 1, jossa jokaisen iteraation.

Silmukka päättyy kohtaan, i == n / 2koska emme löydä yhtään tekijää n: lle numeron ulkopuolella n / 2 . Joten kaikki iteraatiot yli n / 2ovat tarpeettomia.

Jos käyttäjän syöttämä numero on täysin jaettavissa i: llä, isPrime on asetettu arvoon falseeikä numero ole alkuluku.

Mutta jos syötetty numero ei ole täysin jaettavissa i: llä koko silmukan ajan, se tarkoittaa, että syötetty numero on jaettavissa vain yhdellä ja kyseisellä luvulla itsellään.

Joten annettu luku on alkuluku.

Tapauksessa n == 2, forsilmukka ei ajaa ja arvon kaava isPrime edelleen true.

Mielenkiintoisia artikkeleita...