C ++ program annak ellenőrzésére, hogy egy szám elsődleges-e vagy sem

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ó truea 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 forciklus 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 forhurok ettől i == 2kezdve fut , i <= n / 2és minden iterációval 1-vel növeli az i értékét.

A hurok i == n / 2azé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 / 2felesleges.

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 forciklus nem fut, és az isPrime értéke megmarad true.

érdekes cikkek...