Näide selle kohta, kas täisarv (kasutaja sisestatud) on algarv või ei kasutata silmuseks ja kui… muud lauset.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C ++ programmeerimise teemadest:
- C ++ kui, kui … muul juhul ja Pesatud, kui … muul juhul
- C ++ aasale
- C ++ paus ja jätkake avaldust
Positiivne täisarv, mis jaguneb ainult ühega ja on ise tuntud kui algarv.
Näiteks: 13 on algarv, kuna see jagub ainult 1 ja 13-ga, kuid 15 pole algarv, kuna see jagub arvudega 1, 3, 5 ja 15.
Märkus: 0 ja 1 pole algarvud.
Näide: kontrollige peaarvu
#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; )
Väljund
Sisestage positiivne täisarv: 29 29 on algarv.
See programm võtab kasutajalt positiivse täisarvu ja salvestab selle muutujasse n.
Pange tähele, et tõeväärtuse muutuja isPrime lähtestatakse true
programmi alguses.
Kuna 0 ja 1 pole algarvud, kontrollime kõigepealt, kas sisendnumber on üks nendest arvudest või mitte. Kui sisendarv on 0 või 1 , määratakse isPrime väärtuseks false
.
Muul juhul jääb isPrime algväärtus muutmata ja for
käivitatakse silmus, mis kontrollib, kas kasutaja sisestatud number on i-ga täiesti jagatav või mitte.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
for
Loop kestab i == 2
kuni i <= n / 2
ja suurendab väärtust i 1 võrra iga iteratsiooni.
Silmus lõpeb punktiga, i == n / 2
kuna me ei leia n-le ühtegi tegurit, mis ületaks arvu n / 2
. Niisiis, kõik kordused pärast seda n / 2
on ülearused.
Kui kasutaja sisestatud number on i-ga täiesti jagatav, on isPrime väärtuseks seatud false
ja number ei ole algarv.
Kuid kui sisendi number ei ole kogu tsükli ulatuses i-ga täielikult jagatav, tähendab see, et sisendnumber jagub ainult 1-ga ja see arv ise.
Niisiis, antud arv on algarv.
Juhul n == 2
, siis for
loop ei joosta ja väärtust isPrime jääb true
.