Использование подпрограмм: найти первые 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.

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

  1. Объявлены функция isAutoMorph и переменные p, t, result
  2. В функции isAutoMorph происходит вычисление автоморфного числа
  3. В основной программе происходит считывание числа n
  4. Переменная i инициализируется как 0, а переменная value как 1
  5. В цикле repeat с помощью функции isAutoMorph проверяется является ли число автоморфным, если да, то оно выводится на экран и увеличивается счетчик i
  6. После каждой итерации цикла значение переменной value увеличивается на 1
  7. Цикл выполняется до тех пор, пока i не станет равным n
  8. После выполнения цикла происходит считывание еще одного числа (возможно, от пользователя)
  9. Программа завершается

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

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