- Код: Выделить всё
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.