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

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

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

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

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

textual
Листинг программы
  1. procedure avto(n: integer; var f: boolean);
  2. var
  3.   m: longint;
  4. begin
  5.   m := n * n;{квадрат числа}
  6.   f := true;{предположим что автоморфное}
  7.   while (n > 0) and f do
  8.   begin
  9.     if (n mod 10) <> (m mod 10) then
  10.       f := false
  11.     else
  12.     begin
  13.       n := n div 10;
  14.       m := m div 10;
  15.     end;
  16.   end;
  17. end;
  18.  
  19. var
  20.   a, b, i, k: longint;
  21.   flag: boolean;
  22.  
  23. begin
  24.   repeat
  25.     writeln('Введите диапазон натуральных чисел b>a:');
  26.     readln(a, b);
  27.   until(a > 0) and (b > a);
  28.   writeln('Автоморфные числа в интервале ', a, '-', b);
  29.   k := 0;
  30.   for i := a to b do
  31.   begin
  32.     Avto(i, flag);
  33.     if flag then
  34.     begin
  35.       writeln(i:10, sqr(i):10);
  36.       k := 1;
  37.     end;
  38.   end;
  39.   if k = 0 then
  40.     write('Таких чисел нет!');
  41. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы