fbpx

Problema #285 – x2y2k – Rezolvari PBInfo

de Mihai-Alexandru

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 ≤ 1000000000
  • pentru toate valorile lui k utilizate în teste există cel puţin o soluţie

Exemplu

Date de intrare

1000000

Date de ieșire

280 960
352 936
600 800
#include <bits/stdc++.h>

using namespace std;

int main()
{
    unsigned long long int n;
    cin >> n;
    for (int i = 1 ; i * i <= n; ++i)
    {
        double x=i*i;
        double y=sqrt(n-i*i);
        if (x<y*y)
            if (y==(int)y) cout << sqrt(x) << ' ' << y << endl;
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa