Scrie un program care:
a) citește un număr natural nenul n și un șir din n numere naturale;
b) afișează din șirul introdus numerele prime și numărul lor. Dacă nu a fost introdus niciun
număr prim, atunci programul va afișa mesajul „Șirul introdus nu conține numere prime”.
Exemplu: pentru n=7 și șirul: 20, 11, 22, 19, 21, 23, 10 programul va afișa:
” Șirul introdus conține 3 numere prime: 11 19 23 ”.
Cerințe:
1. Textul programului va conține in formă de comentariu formularea sarcinii : 1 pt.
2. La executare programul va afișa ce va face, iar citirea datelor va fi însoțită de dialog cu
utilizatorul: 1 pt.
3. Pentru realizarea corectă a algoritmului programului: 8pt.
La temă, pe Classroom va fi încărcat fișierul main.cpp.
Răspunsuri la întrebare
Salut!
Ai mai jos rezolvarea problemei in limbajul C++
#include <iostream>
using namespace std;
bool prim(int n)
{
if (n <= 1)
{
return false;
}
else if (n != 2 && n % 2 == 0)
{
return false;
}
for (int i = 3; i * i <= n; i += 2)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
int main()
{
int n, a[1000], b[1000], cnt = 0;
cin >> n; //citim n
for (int i = 1; i <= n; ++i)
{
cin >> a[i]; //citim sirul de numere
}
for (int i = 1; i <= n; ++i)
{
if (prim(a[i])) //verificam daca numnarul este prim
{
cnt++;
b[cnt] = a[i]; //copiem numarul din vectorul a in vectorul b, crescand cnt
}
}
if (cnt == 0) //verificam daca nu exista numere prime
{
cout << "Sirul introdus nu contine numere prime";
}
else
{
cout << "Sirul introdus contine " << cnt << " numere prime: ";
for (int i = 1; i <= cnt; ++i)
{
cout << b[i] << " ";
}
}
return 0;
}