Program C ++ pentru a verifica dacă un număr este prim sau nu

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ă truela î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 forbucla 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; ) ) 

forBucla ruleaza de i == 2la i <= n / 2și crește valoarea i de 1 cu fiecare iterație.

Bucla se termină la i == n / 2deoarece nu putem găsi niciun factor pentru n dincolo de număr n / 2 . Deci, orice iterații dincolo n / 2este 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, forbucla nu reușește să ruleze și valoarea isPrime rămâne true.

Articole interesante...