# PBinfo #3272 – sumdivogl – Rezolvare C++

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

## Enunț

Cerința
Se dau n numere naturale. Determinați suma divizorilor oglinditelor celor n numere.

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 va afișa pe ecran numărul S, reprezentând suma cerută.

Restricții și precizări

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

Exemplu:
Intrare

3
12 23 30
Ieșire

99
Explicație
Oglinditul lui 12 este 21; suma divizorilor săi este  32. Oglinditul lui 23 este 32; suma divizorilor săi este  63. Oglinditul lui 30 este 3; suma divizorilor săi este  4.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n; cin >> n;
    unsigned long long S = 0;
    for (int i = 1; i <= n; i++) {
        int temp, oglinda = 0; cin >> temp;
        while (temp != 0) {
            oglinda = oglinda * 10 + temp % 10;
            temp = temp / 10;
        } for (int j = 1; j * j <= oglinda; j++) {
            if (oglinda % j == 0) {
            	S = S + oglinda / j;
                S = S + j;
            } if (j * j == oglinda) S = S - j;
        }
    } cout << S;
    return 0;
}
```

## Resurse

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