Напишите программу, которая находит все числа Армстронга на отрезке [ a , b ] - Pascal ABC
Формулировка задачи:
Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в K -ю степень (где K – количество цифр в числе) равна самому числу. Например,
153 = 13 + 53 + 33.
Напишите программу, которая находит все числа Армстронга на отрезке [ a , b ] .
Входные данные
Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b .
Выходные данные
Программа должна вывести в одну строчку все числа Армстронга на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1.
Примеры
входные данные
100 400
выходные данные
153 370 371
входные данные
500 600
выходные данные
-1
Решение задачи: «Напишите программу, которая находит все числа Армстронга на отрезке [ a , b ]»
textual
Листинг программы
function Sum(n: integer): real; var s: real; begin s := 0; while n <> 0 do begin s := s + power(n mod 10, 3); n := n div 10; end; Sum := s; end; var a, b, i: integer; bool: boolean; begin bool := false; read(a, b); for i := a to b do if Sum(i) = i then begin write(i, ' '); if not bool then bool := not bool; end; if not bool then write('-1'); end.
Объяснение кода листинга программы
- В первой функции происходит вычисление суммы цифр числа n.
- Во второй функции происходит чтение двух чисел a и b.
- В третьей функции происходит проверка является ли число i числом Армстронга.
- Если число i является числом Армстронга, то оно выводится на экран.
- Если в первой итерации цикла находится число Армстронга, то переменная bool переходит в значение true.
- Если после прохождения всего цикла не было найдено ни одного числа Армстронга, то на экран выводится -1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д