# PBinfo #988 – prime – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Se dă un tablou cu n elemente, numere naturale. Să se afișeze numerele prime din șir, în ordinea în care apar în șir.

Se va defini și apela subprogramul prim, care verifică dacă un număr natural transmis ca parametru este prim.

Date de intrare
Fișierul de intrare prime.in conține pe prima linie numărul n, iar iar pe a doua linie cele n elemente ale tabloului.

Date de ieșire
Fișierul de intrare prime.out va conține pe prima linie elementele cerute, separate prin exact un spațiu.

Restricții și precizări

1 ≤ n ≤ 1000
elementele tabloului vor fi mai mici decât 1 000 000 000

Exemplu:
prime.in

5
12 2 123 41 77
prime.out

2 41

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("prime.in");
ofstream out("prime.out");
int prim(int n) {
    if (n < 2) return 0;
    if (n == 2) return 1;
    if (n % 2 == 0) return 0;
    for (int d = 3; d * d <= n; d = d + 2)
        if (n % d == 0)
            return 0;
    return 1;
}
int main() {
    int n, v[1005];
    in >> n;
    for (int i = 0; i < n; i++)
		in >> v[i];
    for (int i = 0; i < n; i++)
        if (prim(v[i]))
			out << v[i] << " ";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/988)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/988/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-988/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
