Найти все автоморфные числа на отрезке [a, b] - Pascal ABC
Формулировка задачи:
Натуральное число называется автоморфным , если оно равно последним цифрам своего квадрата. Например, . Напишите программу, которая находит все автоморфные числа на отрезке [ a , b ] .
Входные данные
Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b .
Выходные данные
Программа должна вывести в одну строчку все автоморфные числа на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1.
Примеры
входные данные
20 100
выходные данные
25 76
Я программу написала, но не могу сделать так, что если чисел нет вывести -1, как учесть это условие?
Решение задачи: «Найти все автоморфные числа на отрезке [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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д