# PBinfo #2021 – sumagauss2 – Rezolvare C++

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

## Enunț

Cerința
Ana a calculat suma numerelor naturale mai mici sau egale cu n, iar Andreea suma numerelor naturale mai mici sau egale cu m. Doamna de mate a calculat apoi diferenţa celor două sume şi a obţinut rezultatul S.

Pentru o valoare S dată, aflaţi toate perechile (n,m), cu n>m, scriindu-le în ordine descrescătoare după n astfel încât doamna de mate să obţină rezultatul S.

Date de intrare
Fișierul de intrare sumagauss2.in conține pe prima linie numărul S.

Date de ieșire
Fișierul de ieșire sumagauss2.out va conține pe linii diferite perechile (n,m), cu n>m, în ordine descrescătoare după n.

Restricții și precizări

1 ≤ S ≤ 2.000.000.000

Exemplu:
sumagauss2.in

10
sumagauss2.out

10 9
4 0
Explicație
Avem  ( 0+1+2+...+10 )-( 0+1+2+...+9 )=10 , respectiv (0+1+2+3+4)-0=10.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
ifstream in("sumagauss2.in");
ofstream out("sumagauss2.out");
int main() {
    long long S1, n, m, temp, i;
    in >> S1; S1 = S1 * 2;
    for (i = 1; i * i <= S1; i++) {
        if (S1 % i == 0) {
            temp = i + S1 / i - 1;
            if (temp % 2 == 0) {
                n = temp / 2;
                m = n - i;
                out << n << " " << m <<endl;;
            }
        }
    } return 0;
}
```

## Resurse

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