В качестве подпрограммы можно оформить определение того факта, является ли число автоморфным. Таким образом, на вход подпрограммы будет "подаваться" число, а на выходе будет находиться значение логического типа. Таким образом, подпрограмма будет реализована в виде функции.
Функция, определяющая автоморфные числа, может быть следующей:
Приведем текст программы:
Program Problem43_2; Var N,Tek_Kol:Byte; i:Word; Function Automorph(X:Word):Boolean; {Функция определяет, автоморфное число или нет.} {Входные параметры - натуральное число.} {Выходное значение - True (число автоморфное),} {False - в противном случае.} Var Y:Word; S1,S2,S3:String[10]; Begin Y:=X*X; {Квадрат числа.} {Переводим числа в строки.} Str(X,S1); Str(Y,S2); {Копируем последние цифры квадрата.} S3:=Copy(S2,Length(S2)-Length(S1)+1,Length(S1)); If S1=S3 Then Automorph:=True Else Automorph:=False; End; Begin WriteLn('Количество автоморфных чисел'); ReadLn(N); Tek_Kol:=0; {Количество найденных чисел.} i:=1; {С какого числа начинаем поиск.} While Tek_Kol<>N Do Begin If Automorph(i) Then Begin WriteLn(i); Tek_Kol:=Tek_Kol+1; End; i:=i+1; {Переходим к следующему числу.} End; End.