Найти все автоморфные числа на отрезке [a, b] - Pascal ABC
Формулировка задачи:
Натуральное число называется автоморфным , если оно равно последним цифрам своего квадрата. Например, . Напишите программу, которая находит все автоморфные числа на отрезке [ a , b ] .
Входные данные
Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b .
Выходные данные
Программа должна вывести в одну строчку все автоморфные числа на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1.
Примеры
входные данные
20 100
выходные данные
25 76
Я программу написала, но не могу сделать так, что если чисел нет вывести -1, как учесть это условие?
Листинг программы
- var a,b,i,c: integer;
- begin
- read(a,b);
- c:=10;
- for i:=a to b do
- begin
- while c<=i do
- c:=c*10;
- begin
- if i*i mod c=i then
- write(i,' ')
- end;
- end;
- end.
Решение задачи: «Найти все автоморфные числа на отрезке [a, b]»
textual
Листинг программы
- var a,b,i,c: integer;
- f:boolean;{f:integer;}
- begin
- read(a,b);
- c:=10;
- f:=false;{f:=0;}
- for i:=a to b do
- begin
- while c<=i do c:=c*10;
- begin
- if i*i mod c=i then
- begin
- write(i,' ');
- f:=true{f:=1}
- end
- end;
- end;
- if not f{f=0} then write('-1')
- end.
Объяснение кода листинга программы
В данном коде происходит поиск всех автоморфных чисел на отрезке [a, b]. Переменные в коде имеют следующие значения и названия:
- a, b: значения считываются с клавиатуры и определяют границы отрезка.
- c: начальное значение переменной, которая будет использоваться для вычисления чисел.
- f: логическое значение, которое изменяется в процессе выполнения цикла. Изначально установлено в значение false.
- i: переменная, которая используется в цикле.
- while: используется для выполнения цикла до тех пор, пока условие истинно.
- c := c * 10: значение переменной c увеличивается на 10 при каждом проходе цикла.
- if i * i mod c = i then: выполняется проверка, является ли число i автоморфным числом. Если это так, то число записывается на экран и значение переменной f устанавливается в true.
- write(i, ' '): записывает число i и пробел на экран.
- f := true: если предыдущая проверка была успешной, то значение переменной f устанавливается в true.
- end;: завершает блок кода, выполняющийся до тех пор, пока условие истинно.
- if not f then write('-1'): если значение переменной f равно false, то на экран записывается число -1. В целом, код выполняет следующие действия: считывает значения a и b, устанавливает начальное значение переменной c. Затем происходит цикл, в котором значение c увеличивается на 10 при каждом проходе. Внутри цикла выполняется проверка, является ли текущее значение i автоморфным числом. Если это так, то число записывается на экран и значение переменной f устанавливается в true. Если значение переменной f остается false, то на экран записывается число -1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д