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 vizitat site-ul nostru web care acoperă despre Informatică. Sperăm că informațiile furnizate v-au fost utile. Nu ezitați să ne contactați dacă aveți întrebări sau aveți nevoie de asistență suplimentară. Ne vedem data viitoare și nu ratați să marcați.