zadach508.PAS

{* Задача 508 *}

Unit ZADACH508;
Interface
Implementation
Begin
 writeln('Дано натуральное число n. Среди чисел 1,...,n найти все такие, запись которых совпадает с последними цифрами записи их квадрата. (Например 6*6=36; 25*25=625 и т.д.');
End.

Program zadach508;

Uses zadach508.pas; {* Эту строку можно удалить *}
{Дано натуральное число n. Среди чисел 1,..., n найти все такие, запись    которых совпадает с последними цифрами записи их квадрата.    (Например 6 * 6=36;
25 * 25 = 625 и т.д.}

Var {* В работе нам потребуются переменные: *}
  n : byte; {Исходное число n}
  i : byte; {Счётчик цикла}
  k : word; {Вспомогательная переменная}
Begin
  write('Введите n: ');
  readln(n); {Определяем искомые числа}
  writeln('Искомые числа от 1 до ', n, ' :');
  For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
  Begin
    If i In [1..10] Then
      k := 10
    Else If i In [11..100] Then
      k := 100
    Else k := 1000; {Проверяем на соответствие условию}
      If (i * i-i) Mod k = 0 Then
        writeln(i, '*', i, '=', i * i)
  End;
  writeln('Просмотр последовательности закончен')
End.