Informatică, întrebare adresată de Ouroboros, 9 ani în urmă


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

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
19
#include <bits/stdc++.h>
using namespace std;

int k, lim;

int main()
{
    cin >> k;

    lim = sqrt(k);
    for(int x = 1; x <= lim; x++) {
        double y = sqrt(k - x * x);
        if(y == int(y) && x <= y)
            cout << x << ' ' << y << '\n';
    }
    return 0;
}


Alte întrebări interesante