Exemplu pentru a verifica dacă un număr întreg (introdus de utilizator) este un număr prim sau nu se folosește pentru buclă și instrucțiunea if … else.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare C ++:
- C ++ dacă, dacă … altfel și cuibărit dacă … altfel
- C ++ pentru buclă
- Declarația C ++ se întrerupe și continuă
Un număr întreg pozitiv care este divizibil doar cu 1 și el însuși este cunoscut ca număr prim.
De exemplu: 13 este un număr prim, deoarece este divizibil doar cu 1 și 13, dar 15 nu este număr prim, deoarece este divizibil cu 1, 3, 5 și 15.
Notă: 0 și 1 nu sunt numere prime.
Exemplu: Verificați numărul prim
#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; )
Ieșire
Introduceți un număr întreg pozitiv: 29 29 este un număr prim.
Acest program ia un întreg pozitiv de la utilizator și îl stochează în variabila n.
Observați că variabila booleană isPrime este inițializată true
la începutul programului.
Deoarece 0 și 1 nu sunt numere prime, verificăm mai întâi dacă numărul de intrare este sau nu unul dintre aceste numere. Dacă numărul de intrare este fie 0, fie 1 , atunci valoarea isPrime este setată la false
.
Altfel, valoarea inițială a isPrime este lăsată neschimbată și for
bucla este executată, care verifică dacă numărul introdus de utilizator este perfect divizibil cu i sau nu.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
for
Bucla ruleaza de i == 2
la i <= n / 2
și crește valoarea i de 1 cu fiecare iterație.
Bucla se termină la i == n / 2
deoarece nu putem găsi niciun factor pentru n dincolo de număr n / 2
. Deci, orice iterații dincolo n / 2
este redundantă.
Dacă numărul introdus de utilizator este perfect divizibil cu i, atunci isPrime este setat la false
și numărul nu va fi un număr prim.
Dar dacă numărul de intrare nu este perfect divizibil cu i pe întreaga buclă, atunci înseamnă că numărul de intrare este divizibil doar cu 1 și acel număr în sine.
Deci, numărul dat este un număr prim.
În cazul n == 2
, for
bucla nu reușește să ruleze și valoarea isPrime rămâne true
.