Primer za preverjanje, ali je celo število (ki ga vnese uporabnik) prosto število ali ne, in se uporablja zanka for in if … else.
Če želite razumeti ta primer, morate poznati naslednje programske teme C ++:
- C ++ if, if … else in ugnezdeni if … else
- C ++ za Loop
- C ++ prekinite in nadaljujte izjavo
Celo pozitivno število, ki je deljivo le z 1 in je samo po sebi znano kot glavno število.
Na primer: 13 je praštevilo, ker je deljivo le z 1 in 13, 15 pa ni praštevilo, ker je deljivo z 1, 3, 5 in 15.
Opomba: 0 in 1 nista praštevili.
Primer: Preverite glavno številko
#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; )
Izhod
Vnesite pozitivno celo število: 29 29 je praštevilo.
Ta program od uporabnika vzame pozitivno celo število in ga shrani v spremenljivko n.
Upoštevajte, da je logična spremenljivka isPrime inicializirana true
na začetku programa.
Ker 0 in 1 nista praštevili, najprej preverimo, ali je vhodna številka ena od teh številk ali ne. Če je vhodna številka 0 ali 1 , je vrednost isPrime nastavljena na false
.
V nasprotnem primeru začetna vrednost isPrime ostane nespremenjena in for
zanka se izvede, kar preveri, ali je številka, ki jo vnese uporabnik, popolnoma deljiva z i ali ne.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
for
Zanka poteka od i == 2
do i <= n / 2
in povečuje vrednost i za 1 pri vsaki ponovitvi.
Zanka se konča na, i == n / 2
ker ne moremo najti nobenega faktorja za n, ki presega število n / 2
. Torej so morebitne ponovitve n / 2
odveč.
Če je številka, ki jo vnese uporabnik, popolnoma deljiva z i, je isPrime nastavljena na false
in številka ne bo glavno število.
Če pa vhodna številka ni popolnoma deljiva z i v celotni zanki, potem to pomeni, da je vhodna številka deljiva le z 1 in to številko samo.
Torej, dano število je praštevilo.
V primeru n == 2
, da se for
zanka ne zažene in vrednost isPrime ostane true
.