SumSquare

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≤1015
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

SOLUTIE

#include <iostream>
#include<math.h>

using namespace std;

int main()
{
    unsigned long long n;
    double r;
    cin>>n;
    for(unsigned long long i = 1; i * i <= n;i++)
    {
        r=sqrt(n-i*i);
        if((unsigned long long)r==r)
        {
            if(r*r+i*i)
            {
                cout<<i*i<<" "<<n-i*i;
                return 0;
            }
        }
    }
    cout<<"NU";
}
%d bloggers like this: