Найти все автоморфные числа через процедуру - Free Pascal

Формулировка задачи:

Всем привет, столкнулся с проблемой, что не могу написать программу. Нужна ваша помощь. Желательно написать без функций типа trunc т.к. такого не изучали. Вот условие: 8. Программа с помощью процедуры задает последовательность чисел 1,2,3...n(n<=100). Среди них находит автоморфные числа(число и последние цифры его квадрата равны) Например: 5 и 25, 25 и 625. Спасибо заранее)

Код к задаче: «Найти все автоморфные числа через процедуру - Free Pascal»

textual
procedure avto(n: integer; var f: boolean);
var
  m: longint;
begin
  m := n * n;{квадрат числа}
  f := true;{предположим что автоморфное}
  while (n > 0) and f do
  begin
    if (n mod 10) <> (m mod 10) then
      f := false
    else
    begin
      n := n div 10;
      m := m div 10;
    end;
  end;
end;
 
var
  a, b, i, k: longint;
  flag: boolean;
 
begin
  repeat
    writeln('Введите диапазон натуральных чисел b>a:');
    readln(a, b);
  until(a > 0) and (b > a);
  writeln('Автоморфные числа в интервале ', a, '-', b);
  k := 0;
  for i := a to b do
  begin
    Avto(i, flag);
    if flag then
    begin
      writeln(i:10, sqr(i):10);
      k := 1;
    end;
  end;
  if k = 0 then
    write('Таких чисел нет!');
end.

11   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ