Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, total_numere = 0, i=2;
cin >> n;
if ( n == 1 )
cout<<" Primul numar prim este: ";
else if ( n > 1 )
cout<<"Primele " << n << " numere prime sunt: ";
else
cout<<"Variabila n trebuie sa fie mai mare decat 0";
while(total_numere != n && n > 0)
{
int prim = 0;
for(int k = 2; k <= i / 2; k++ )
if ( i % k == 0 )
{
prim = 1;
break;
}
if ( prim == 0 )
{
cout << i << " ";
total_numere++;
}
i++;
}
}
Explicație:
Cel mai mic numar prim este 2. De la cifra 2 vom afisa urmatoarele n numere prime.
Avem variabila total_numere care va contoriza numarul de numere prime. Initial este egala cu 0. Pe parcurs ce gaseste un numar prim ( daca afiseaza numarul prim inseamna ca automat a gasit unul ) incrementez valoarea variabilei in momentul in care am gasit numar potrivit.
Cat timp numerele afisate sunt diferite de n.. adica sunt mai putine decat numarul citit.. vom executa conditiile de verificare a numarului prim.
In interiorul conditiei while determin daca numarul are divizori proprii. Daca gaseste cel putin un divizor variabila prim isi schimba valoarea si oprim for-ul deoarece este inutil sa parcurgem pana la i/2 intrucat este irelevant sa facem asta. Noi avem nevoie sa nu existe divizori. In final, daca numarul nu are divizori ( prim == 0 ) afisam si incrementam total_numere.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că ați găsit conținutul oferit util și inspirațional. Dacă aveți întrebări suplimentare sau doriți asistență, vă încurajăm să ne contactați. Ne-ar face plăcere să reveniți și nu uitați să ne adăugați în lista dumneavoastră de favorite!