Напишите программу в паскаль! Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в K -ю степень (где K – количество цифр в числе) равна самому числу. Например, 153 = 1 3 + 5 3 + 3 3 . Напишите программу, которая находит все числа Армстронга на отрезке [ a , b ] . Входные данные Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b . Выходные данные Программа должна вывести в одну строчку все числа Армстронга на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1.

5 Апр 2021 в 19:46
176 +1
0
Ответы
1

program ArmstrongNumbers;

function ArmstrongNumber(num: Integer): Boolean;
var
temp, sum, digit, numLength: Integer;
begin
temp := num;
sum := 0;
numLength := 0;

while temp > 0 do
begin
temp := temp div 10;
numLength := numLength + 1;
end;

temp := num;

while temp > 0 do
begin
digit := temp mod 10;
sum := sum + Round(Power(digit, numLength));
temp := temp div 10;
end;

if sum = num then
ArmstrongNumber := True
else
ArmstrongNumber := False;
end;

var
a, b, i: Integer;
found: Boolean;
begin
found := False;

Readln(a, b);

for i := a to b do
begin
if ArmstrongNumber(i) then
begin
Write(i, ' ');
found := True;
end;
end;

if not found then
Write(-1);
end.

17 Апр в 19:34
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 89 890 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир