Пожалуйста имейте ввиду, что этот пользователь забанен
А при чем здесь массивы? Сначала пишем функцию, возвращающую сумму цифр числа function SumDigits(N : Integer) : Integer; var S : Integer; begin S := 0; while N > 0 do begin S := S + N mod 10; N := N div 10; end; SumDigits := S; end; и используем ее в своей программе for i:=1 to N-1 do if Sqr(SumDigits(i)) = M then WriteLn(i); Как-то так...