Одно из лёгких заданий. Смари. На цифры даже пока не смотри, смотри на условие. Если DAT(K)>M, то M:=(DAT)K. Нужно, чтоб программа вывела в итоге m. теперь смотрим на числа. k:=(1,2,3,4,5,6,7,8,9,10). Оно и так видно:) Теперь дальше, смотрим на числа. Например 16. Подставил 16, теперь ищи число больше 16(смотри на условие). m, по условию, равняется нулю, подставил число, теперь m равняется 16. 20>16, соответственно условие выполнено, m=20. Ищешь больше 20, и т.д. В итоге у тебя выходит самое большое число 41, больше него в задачи чисел нет. Ответ: 41. Если всё понял, ставь лайк и отметь ответ лучшим, вопросы в коменты.
Var n, i, m: longint; s1, s2: string; l1: integer;
begin Write('Введите натуральное число: '); Readln(n); Writeln('Автоморфные числа:'); for i := 1 to n do begin m := sqr(i); Str(i, s1); l1 := Length(s1); Str(m, s2); if s1 = Copy(s2, Length(s2) - l1 + 1, l1) then Writeln(i) end end.