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

Узнай цену своей работы

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

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

Решение задачи: «Найти все автоморфные числа через процедуру»

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.

Объяснение кода листинга программы

  1. Автоморфные числа - это числа, которые при преобразовании в квадратное трехзначное число дают исходное число.
  2. В коде реализована функция avto, которая проверяет, является ли число автоморфным.
  3. В функции avto переменная m хранит квадрат числа n.
  4. Переменная f инициируется значением true, предполагая, что число автоморфное.
  5. В цикле while происходит деление числа n на 10 и проверка, совпадает ли последняя цифра числа n и квадрата числа m.
  6. Если последняя цифра не совпадает, то значение переменной f меняется на false.
  7. Если последняя цифра совпадает, то число n и m делятся на 10.
  8. Цикл while продолжается, пока число n больше 0 и значение переменной f равно true.
  9. После окончания цикла, функция возвращает значение переменной f.
  10. В основной программе задается диапазон натуральных чисел для проверки на автоморфность.
  11. С помощью цикла for происходит проверка каждого числа в заданном диапазоне.
  12. Если число является автоморфным, то оно выводится на экран вместе с его квадратом.
  13. Если в заданном диапазоне нет автоморфных чисел, то выводится сообщение Таких чисел нет!.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы