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 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 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 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.