Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Вычисление разложения натурального числа на сумму квадратов целых
- // n = x^2 + y^2 + z^2 + r^2
- void decompose(int n, int &x, int &y, int &z, int &r)
- {
- assert(n>0);
- x=-1;
- do{
- x++;
- y=-1;
- do{
- y++;
- z=-1;
- do{
- z++;
- r=-1;
- do{
- r++;
- } while( (x*x+y*y+z*z+r*r!=n) && (r*r<n) );
- } while( (x*x+y*y+z*z+r*r!=n) && (z*z<n) );
- } while( (x*x+y*y+z*z+r*r!=n) && (y*y<n) );
- } while( (x*x+y*y+z*z+r*r!=n) && (x*x<n) );
- assert(n==x*x+y*y+z*z+r*r);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement