Advertisement
Guest User

n=x*x y*y z*z r*r

a guest
Feb 26th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. // Вычисление разложения натурального числа на сумму квадратов целых
  2. // n = x^2 + y^2 + z^2 + r^2
  3. void decompose(int n, int &x, int &y, int &z, int &r)
  4. {
  5.     assert(n>0);
  6.  
  7.     x=-1;
  8.      do{
  9.         x++;
  10.         y=-1;
  11.         do{
  12.             y++;
  13.             z=-1;
  14.             do{
  15.                 z++;
  16.                 r=-1;
  17.                 do{
  18.                     r++;
  19.                     } while( (x*x+y*y+z*z+r*r!=n) && (r*r<n) );                            
  20.             } while( (x*x+y*y+z*z+r*r!=n) && (z*z<n) );            
  21.         } while( (x*x+y*y+z*z+r*r!=n) && (y*y<n) );        
  22.     } while( (x*x+y*y+z*z+r*r!=n) && (x*x<n) );
  23.  
  24.     assert(n==x*x+y*y+z*z+r*r);
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement