# PBinfo #443 – DivizoriPrimi – Rezolvare C++

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

## Enunț

Cerinţa
Se dau n numere  naturale. Calculaţi suma obținută prin adunarea primului divizor prim al fiecărui număr citit.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran numărul S, reprezentând suma cerută.

Restricţii şi precizări

1 ≤ n ≤ 1000
cele n numere citite vor fi mai mari decât 1 și mai mici decât 1.000.000.000

Exemplu:
Intrare

5
15 13 39 49 25
Ieșire

31
Explicație
Pentru numerele date, primul divizor prim este, respectiv: 3 13 3 7 5, cu suma 31.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    long long int n, temp, S = 0;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> temp;
        int d = 3, f = -1;
        if (temp % 2 == 0) f = 2;
        while (f == -1)
            if (temp % d == 0)
            	f = d;
            else {
            d = d + 2;
            if (d * d > temp) f = temp;
        } S = S + f;
    } cout << S;
    return 0;
}
```

## Resurse

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