Példa annak ellenőrzésére, hogy egy (a felhasználó által megadott) egész szám prímszám-e vagy sem a ciklushoz, és ha… más utasítás.
A példa megértéséhez ismernie kell a következő C ++ programozási témákat:
- C ++ ha, ha… más, és beágyazott, ha … más
- C ++ a hurokhoz
- C ++ szünet és folytassa a nyilatkozatot
Egy pozitív egész szám, amely csak osztható 1-gyel, és maga prímszámként ismert.
Például: 13 prímszám, mert csak osztható 1-gyel és 13-mal, de a 15 nem prímszám, mert osztható 1-vel, 3-mal, 5-tel és 15-tel.
Megjegyzés: A 0 és az 1 nem prímszám.
Példa: Ellenőrizze a Prime számot
#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; )
Kimenet
Adjon meg pozitív egész számot: 29 29 prímszám.
Ez a program vesz egy pozitív egész számot a felhasználótól, és eltárolja azt az n változóban.
Vegye figyelembe, hogy az isPrime logikai változó true
a program elején inicializálódik .
Mivel a 0 és az 1 nem prímszám, először ellenőrizzük, hogy a bemeneti szám egy e számok-e vagy sem. Ha a bemeneti szám 0 vagy 1 , akkor az isPrime értéke értéke false
.
Egyébként az isPrime kezdeti értéke változatlan marad, és a for
ciklus végrehajtásra kerül, amely ellenőrzi, hogy a felhasználó által megadott szám tökéletesen osztható-e i-vel.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
A for
hurok ettől i == 2
kezdve fut , i <= n / 2
és minden iterációval 1-vel növeli az i értékét.
A hurok i == n / 2
azért fejeződik be, mert nem találunk a n túl tényezőt n-re n / 2
. Tehát minden további iteráció n / 2
felesleges.
Ha a felhasználó által beírt szám tökéletesen osztható i-vel, akkor az isPrime értékre van állítva, false
és a szám nem lesz prímszám.
De ha a bemeneti szám nem osztható tökéletesen i-vel az egész ciklus alatt, akkor ez azt jelenti, hogy a bemeneti szám csak osztható 1-gyel és ezzel a számmal.
Tehát a megadott szám prímszám.
Abban az esetben n == 2
, a for
ciklus nem fut, és az isPrime értéke megmarad true
.