Informatică Programare

Generare numere prime in C++

Generarea numerelor prime în C++ se bazează pe algoritmi care verifică divizibilitatea. Un număr prim are exact doi divizori: 1 și el însuși.

Algoritmi de bază

  • Verificare primalitate Pentru un număr n, testează dacă este divizibil cu vreun i de la 2 la sqrt(n). Dacă n % i == 0 pentru orice i, nu este prim.
  • Ciurul lui Eratostene Eficient pentru generarea tuturor numerelor prime până la un limită N. Marchează multiplii numerelor ca neprime.
  • Generare secvențială Parcurge numerele de la 2 la N, aplică verificarea primalității pentru fiecare, afișează pe cele prime.

Implementare în C++

  1. 1
    Funcție isPrime bool isPrime(int n) { if (n < 2) return false; for (int i = 2; i * i <= n; i++) if (n % i == 0) return false; return true; }
  2. 2
    Generează prime până la 100 Folosește o buclă for de la 2 la 100, apelează isPrime pentru fiecare număr, afișează rezultatele. Exemplu: primele numere sunt 2,3,5,7.
  3. 3
    Ciurul lui Eratostene Declară un vector bool de dimensiune N+1, inițializează cu true, pentru i de la 2 la sqrt(N), dacă prime[i] este true, marchează multiplii ca false.

Pentru numere mici, folosește verificarea simplă; pentru intervale mari, ciurul este mai rapid.

Mai multe din Programare