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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!