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 true
ohjelman 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 for
silmukka, 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; ) )
for
Silmukka kulkee i == 2
kohteeseen i <= n / 2
ja kasvattaa i: n arvo 1, jossa jokaisen iteraation.
Silmukka päättyy kohtaan, i == n / 2
koska emme löydä yhtään tekijää n: lle numeron ulkopuolella n / 2
. Joten kaikki iteraatiot yli n / 2
ovat tarpeettomia.
Jos käyttäjän syöttämä numero on täysin jaettavissa i: llä, isPrime on asetettu arvoon false
eikä 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
, for
silmukka ei ajaa ja arvon kaava isPrime edelleen true
.