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

Pbinfo.ro #285
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

Dau coroană, să fie rezolvare de 100p, dacă puteți și explica :)


garfield3090ouqh32: 2 este exponent
garfield3090ouqh32: k scris că suma de pătrate perfecte
garfield3090ouqh32: ca***

Răspunsuri la întrebare

Răspuns de stassahul
4
Pai nai ce face, ai toata rezolvarea scrisa in intrebare, doar ca trebuie sa intelegi ca poti controla doar pina la sqrt(k), caci dupa se repeta.

#include <bits/stdc++.h>

using namespace std;

int k;

int main()
{

    cin >> k;

    for(int i=1;i<=int(sqrt(k));i++)
        if(sqrt(k-i*i)==int(sqrt(k-i*i)) and i<=sqrt(k-i*i))
            cout << i << ' ' << sqrt(k-i*i) << endl;

    return 0;

}

garfield3090ouqh32: Mulțumesc. M-am așteptat să răspunzi tu :D
Alte întrebări interesante