Использование подпрограмм: найти первые n автоморфных чисел - Free Pascal
Формулировка задачи:
Для заданного натурального n найти первые n автоморфных чисел. Написать и использовать в программе логическую функцию, определяющую, явлеется ли число автоморфным.
(Число называется автоморфным, если квадрат этого числа заканчивается этим же числом)
Решение задачи: «Использование подпрограмм: найти первые n автоморфных чисел»
textual
Листинг программы
{$mode objfpc}
function isAutoMorph(n : qword) : boolean;
var
p, t : integer;
begin
t := n; p := 1;
while t > 0 do
begin
p := 10 * p; t := t div 10;
end;
result := sqr(n) mod p = n;
end;
var
i, n, value : integer;
begin
readln(n);
i := 0; value := 1;
repeat
if isAutoMorph(value) then
begin
writeln(value); inc(i);
end;
inc(value);
until i = n;
readln;
end.
Объяснение кода листинга программы
- Объявлены функция isAutoMorph и переменные p, t, result
- В функции isAutoMorph происходит вычисление автоморфного числа
- В основной программе происходит считывание числа n
- Переменная i инициализируется как 0, а переменная value как 1
- В цикле repeat с помощью функции isAutoMorph проверяется является ли число автоморфным, если да, то оно выводится на экран и увеличивается счетчик i
- После каждой итерации цикла значение переменной value увеличивается на 1
- Цикл выполняется до тех пор, пока i не станет равным n
- После выполнения цикла происходит считывание еще одного числа (возможно, от пользователя)
- Программа завершается