Răspuns :
→ Varianta cu vector (sir)
#include <iostream>
using namespace std;
const int N = 10001;
int n, a[N + 1];
void primulNrPrim() {
for (int i = 0; i < n; ++i) {
if (a[i] >= 2) {
bool ok = true;
for (int j = 3; j * j <= a[i]; j += 2) {
if (a[i] % j == 0) {
ok = false;
}
}
if (ok) {
cout << a[i];
return;
}
}
}
cout << "Nu exista niciun nr prim in sir";
}
int main() {
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
primulNrPrim();
return 0;
}
→ Varianta fara vector (fara sir, numerele nu sunt stocate)
#include <iostream>
using namespace std;
int n;
bool prim(int x) {
if (x < 2) {
return false;
}
if (x != 2 && x % 2 == 0) {
return false;
}
for (int i = 3; i * i <= x; i += 2) {
if (x % i == 0) {
return false;
}
}
return true;
}
int main() {
cin >> n;
bool exista = false;
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
if (prim(x)) {
cout << x;
exista = true;
break;
}
}
if (!exista) {
cout << "Nu exista niciun nr prim in sir";
}
return 0;
}
→ Explicatie
- In prima varianta mai intai am citit sirul (am stocate numerele), iar apoi am afisat primul nr prim.
- A doua varianta dupa ce a citit un nr il va verifica daca e prim, daca este atunci il va afisa si va incheia citirea.
- Ambele variante contin un check la final in caz ca nu s-a citit niciun nr prim.
De retinut: Un numar este prim daca: este numar natural, mai mare decat 1 si care are exact 2 divizori pozitivi, 1 si el insusi.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.