# PBinfo #2915 – SumSquare – Rezolvare C++

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

## Enunț

Cerința
Se dă numărul natural n. Determinați dacă numărul se poate scrie ca sumă de două pătrate perfecte. Dacă da, afișați două pătrate perfecte a căror sumă este n, în ordine crescătoare, sau mesajul NU în caz contrar.

Date de intrare
Programul citește de la tastatură numărul n;

Date de ieșire
Programul va afișa pe ecran cele 2 pătrate care alcătuiesc numărul sau mesajul NU în cazul în care nu există.

Restricții și precizări

\(1 ≤ n ≤  {10}^{15} \)
dacă există mai multe perechi de pătrate perfecte a căror sumă este n, poate fi afișată oricare

Exemplu:
Intrare

169
Ieșire

25 144

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
    bool ok = false;
    long long int n;
    cin >> n;
    for (long long int i = 1; i * i <= n / 2 && !ok; ++i) {
        long long int x = i * i;
        long long int y = n - x;
        long long int j = sqrt(y);
        if (j * j == y && !ok)
            cout << min(y, x) << " " << max(x, y), ok = true;
    } if (ok == false)cout << "NU";
    return 0;
}
```

## Resurse

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