Cerința Se dau n numere naturale. Determinați câte dintre ele sunt prime. Date de intrare Programul citește de la tastatură numărul n, iar apoi n numere naturale. Date de ieșire Programul va afișa pe ecran numărul C, reprezentând câte dintre numerele citite sunt prime. Restricții și precizări 1 ≤ n ≤ 1000 cele n numere citite vor fi mai mici decât 1.000.000.000 Exemplu Intrare 5 11 25 3 4 1 Ieșire 2 Explicație Dintre cele 5 numere citite sunt prime numerele 11 și 3.
va rog cu structura daca
dau coroniță
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using std::cout, std::cin, std::endl;
// Funcția returnează true dacă numărul este prim, false altfel
static bool estePrim(const int& numar) {
// 0 și 1 nu sunt prime
if (numar == 0 || numar == 1) return false;
// dacă numărul se împarte la altceva înafară de 1 și el însuși înseamnă că nu e prim
for (int i = 2; i <= numar / 2; ++i)
if (numar % i == 0) return false;
// altfel înseamnă că e prim
return true;
}
int main() {
int n, *numere, contorNrPrime{};
cout << "Introdu n (de ex. 5) >> ";
cin >> n;
// Creăm vectorul de dimensiune N
numere = new int[static_cast<size_t>(n)];
// Citim numerele-n vector
for (int i = 0; i < n; i++) {
cout << "numere[" << i << "] >> ";
cin >> numere[i];
}
// Parcurgem vectorul și dacă numărul este prim adăugăm 1 la contor
for (int i = 0; i < n; ++i)
if (estePrim(numere[i])) ++contorNrPrime;
// Afișăm câte numere prime am găsit
cout << contorNrPrime << " numere din cele " << n << " sunt prime!" << endl;
// La final eliberăm memoria
delete[] numere;
return 0;
}