Informatică, întrebare adresată de laurstefan2002, 8 ani în urmă

Problema SumSquare #2915 de pe pbinfo va rog:
Cerința
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

Răspunsuri la întrebare

Răspuns de pmarian98
6

Răspuns:

#include <bits/stdc++.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";

}

Explicație:


laurstefan2002: Ma poti ajuta cu inca 2 probleme?
Alte întrebări interesante