# PBinfo #285 – x2y2k – Rezolvare C++

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

## Enunț

Cerinţa
Se dă un număr  natural, k. Să se determine toate perechile de numere naturale nenule x, y (x ≤ y), cu proprietatea că  x2+y2=k .

Date de intrare
Programul citește de la tastatură numărul k.

Date de ieşire
Programul afișează perechile x, y  determinate, câte o pereche pe o linie a ecranului, în ordinea crescătoare a valorii lui x.

Restricţii şi precizări

2 ≤ k ≤ 1.000.000.000
pentru toate valorile lui k utilizate în teste  există cel puţin o soluţie

Exemplu:
Intrare

1000000
Ieșire

280 960
352 936
600 800

## Cod sursă C++

```cpp
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    int k;
    cin >> k;
    for (int x = 1; x * x <= k / 2; ++x) {
        int z = k - x * x;
        int y = sqrt(z);
        if (z == y * y)
            cout << x << " " << y << "\n";
    } return 0;
}
```

## Resurse

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