Program C ++ za preverjanje, ali je številka osnovna ali ne

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 truena 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 forzanka 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; ) ) 

forZanka poteka od i == 2do i <= n / 2in povečuje vrednost i za 1 pri vsaki ponovitvi.

Zanka se konča na, i == n / 2ker ne moremo najti nobenega faktorja za n, ki presega število n / 2 . Torej so morebitne ponovitve n / 2odveč.

Če je številka, ki jo vnese uporabnik, popolnoma deljiva z i, je isPrime nastavljena na falsein š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 forzanka ne zažene in vrednost isPrime ostane true.

Zanimive Članki...