Найти все автоморфные числа через процедуру - 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.
Объяснение кода листинга программы
- Автоморфные числа - это числа, которые при преобразовании в квадратное трехзначное число дают исходное число.
- В коде реализована функция
avto
, которая проверяет, является ли число автоморфным. - В функции
avto
переменнаяm
хранит квадрат числаn
. - Переменная
f
инициируется значениемtrue
, предполагая, что число автоморфное. - В цикле while происходит деление числа
n
на 10 и проверка, совпадает ли последняя цифра числаn
и квадрата числаm
. - Если последняя цифра не совпадает, то значение переменной
f
меняется наfalse
. - Если последняя цифра совпадает, то число
n
иm
делятся на 10. - Цикл while продолжается, пока число
n
больше 0 и значение переменнойf
равноtrue
. - После окончания цикла, функция возвращает значение переменной
f
. - В основной программе задается диапазон натуральных чисел для проверки на автоморфность.
- С помощью цикла for происходит проверка каждого числа в заданном диапазоне.
- Если число является автоморфным, то оно выводится на экран вместе с его квадратом.
- Если в заданном диапазоне нет автоморфных чисел, то выводится сообщение
Таких чисел нет!
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д