Primjer za provjeru je li cijeli broj (koji je unio korisnik) prost broj ili ga ne koristi for petlja i if … else izraz.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja na C ++:
- C ++ ako, ako … drugo i ugniježđeno ako … drugo
- C ++ za petlju
- C ++ razbiti i nastaviti Izjavu
Pozitivni cijeli broj koji je djeljiv samo s 1 i sam je poznat kao prost broj.
Na primjer: 13 je prost broj jer je djeljiv samo s 1 i 13, ali 15 nije prost broj jer je djeljiv s 1, 3, 5 i 15.
Napomena: 0 i 1 nisu prosti brojevi.
Primjer: Provjerite glavni broj
#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; )
Izlaz
Unesite pozitivan cijeli broj: 29 29 je prost broj.
Ovaj program od korisnika uzima pozitivan cijeli broj i pohranjuje ga u varijablu n.
Primijetite da je logička varijabla isPrime inicijalizirana true
na početku programa.
Budući da 0 i 1 nisu prosti brojevi, prvo provjeravamo je li ulazni broj jedan od tih brojeva ili nije. Ako je ulazni broj 0 ili 1 , tada je vrijednost isPrime postavljena na false
.
Inače, početna vrijednost isPrime ostaje nepromijenjena i for
petlja se izvršava, čime se provjerava je li broj koji je korisnik unio savršeno djeljiv s i ili nije.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
for
Petlja traje od i == 2
do i <= n / 2
i povećava vrijednost: i od 1 sa svakom iteracijom.
Petlja se završava na i == n / 2
jer ne možemo pronaći bilo koji faktor za n izvan broja n / 2
. Dakle, bilo kakva ponavljanja n / 2
suvišna su.
Ako je broj koji je korisnik unio savršeno djeljiv s i, tada je isPrime postavljeno na false
i broj neće biti prost broj.
Ali ako ulazni broj nije savršeno djeljiv s i tijekom cijele petlje, to znači da je ulazni broj djeljiv samo s 1 i samim tim brojem.
Dakle, zadani broj je prost broj.
U slučaju n == 2
, for
petlja se ne može pokrenuti i vrijednost isPrime ostaje true
.