zadach505.PAS

{* Задача 505 *}

Unit ZADACH505;
Interface
Implementation
Begin
 writeln('Дано натуральное число n. Можно ли представить его в виде суммы трёх квадратов натуральных чисел. Если можно, то укaзать числа X,Y,Z такие что N=X*X+Y*Y+Z*Z.');
End.

Program zadach505;

Uses zadach505.pas; {* Эту строку можно удалить *}
{Дано натуральное число n. Можно ли представить его в виде суммы трёх    квадратов натуральных чисел. Если можно, то укaзать числа X, Y, Z такие что    N=X*X+Y*Y+Z*Z  }
Var {* Объявление переменных *}
  n : byte; {Входной параметр}
  i : byte;
  j : byte;
  k : byte; {Счётчики циклов}
Begin
  write('Введите параметр n: ');
  readln(n); {Подсчитываем варианты}
  writeln('Варианты:');
  For i := 0 To n Do {* Цикл для i => [0 .. n] *}
    For j := 0 To n Do {* Цикл для j => [0 .. n] *}
      For k := 0 To n Do {* Переменная k увеличивается с 0 до n *}
        If i * i+j * j+k * k = n Then
          writeln('X=', i, ' Y=' : 5, j, ' Z=' : 5, k, ' ' : 5, i, '*', i, '+', j, '*', j, '+',                    k, '*', k, '=', n)
End.