Informatică, întrebare adresată de tuffi, 8 ani în urmă

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 de Apollyon
1

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;

}

Alte întrebări interesante