- Код: Выделить всё
- Program l9_n5;
 {представление числа в виде суммы трех квадратов натур. чисел}
 Var n,x,y,z,sqr_x,sqr_y,sqr_z:Longint;
 Begin
 Readln(n);
 For x:=1 To n Do Begin
 For y:=1 To n Do Begin
 For z:=1 To n Do Begin
 sqr_x:=x*x;
 sqr_y:=y*y;
 sqr_z:=z*z;
 If (sqr_x+sqr_y+sqr_z=n) Then Writeln(x,'^2+',y,'^2+',z,'^2=',n);
 End;
 End;
 Readln;
 End.
Но я хочу убрать цикл For z:=1 To n Do Begin, и вместо него в цикле For y:=1 To n Do Begin получать z на путем вычетания из n квадратов x и y.
- Код: Выделить всё
- Program l9_n5;
 {представление числа в виде суммы трех квадратов натур. чисел}
 Var n,x,y,z,sqr_x,sqr_y,sqr_z:Longint;
 Begin
 Readln(n);
 For x:=1 To n Do Begin
 For y:=1 To n Do Begin
 For z:=1 To n Do Begin
 sqr_x:=x*x;
 sqr_y:=y*y;
 sqr_z:=n-(sqr_x+sqr_y);
 End;
 End;
 Readln;
 End.
Но здесь я нахожу квадрат числа z, а само число z вывести не получается. Функция scrt(scr_z) выводит корень из числа z, но к нему добавляет много нулей и "E+00". Как мне получить чистый корень? Например, из 4 - 2, вместо 2.00000000Е+00.





 ?
 ?