Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где...

Тематика Информатика
Уровень 5 - 9 классы
число Армстронга трёхзначные числа программа на Паскале сумма цифр возведение в степень поиск чисел Армстронга
0

Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где N – количество цифр в числе) равна самому числу. Например, 153 = 13 + 53 + 33. Найдите все трёхзначные Армстронга.

Написать в Паскале!

avatar
задан 4 месяца назад

3 Ответа

0

Для нахождения всех трехзначных чисел Армстронга воспользуемся следующим алгоритмом на языке Pascal:

program ArmstrongNumbers;

var
  num, digit, sum, tempNum: integer;

begin
  writeln('Трехзначные числа Армстронга:');
  
  for num := 100 to 999 do
  begin
    sum := 0;
    tempNum := num;
    
    while tempNum > 0 do
    begin
      digit := tempNum mod 10;
      sum := sum + round(power(digit, 3));
      tempNum := tempNum div 10;
    end;
    
    if sum = num then
    begin
      writeln(num);
    end;
  end;
  
end.

Этот код выведет все трехзначные числа Армстронга: 153, 370, 371, 407.

avatar
ответил 4 месяца назад
0

program ArmstrongNumbers;

var num, numCopy, digit, sum, power, i: integer;

begin for num := 100 to 999 do begin

numCopy := num;
sum := 0;
power := 0;

while numCopy > 0 do
begin
  digit := numCopy mod 10;
  numCopy := numCopy div 10;
  power := power + 1;
end;

numCopy := num;

while numCopy > 0 do
begin
  digit := numCopy mod 10;
  sum := sum + Round(IntPower(digit, power));
  numCopy := numCopy div 10;
end;

if sum = num then
  writeln(num);

end; end.

avatar
ответил 4 месяца назад
0

Для того чтобы найти все трёхзначные числа Армстронга, необходимо выполнить следующие шаги:

  1. Понять, что трёхзначные числа находятся в диапазоне от 100 до 999.
  2. Проверить каждое число в этом диапазоне на соответствие условию числа Армстронга: сумма кубов его цифр должна равняться самому числу.

Программа на языке Pascal может быть написана следующим образом:

program ArmstrongNumbers;

var
  i, hundreds, tens, units, sum: integer;

begin
  writeln('All three-digit Armstrong numbers:');
  for i := 100 to 999 do
  begin
    hundreds := i div 100;         // Получаем сотни
    tens := (i div 10) mod 10;     // Получаем десятки
    units := i mod 10;             // Получаем единицы
    
    // Считаем сумму кубов цифр
    sum := (hundreds * hundreds * hundreds) +
           (tens * tens * tens) +
           (units * units * units);
    
    // Проверяем условие числа Армстронга
    if sum = i then
      writeln(i);
  end;
end.

Разберем программу по шагам:

  1. Объявляем переменные i, hundreds, tens, units, sum типа integer.
  2. В цикле for перебираем все числа от 100 до 999.
  3. Для каждого числа i:
    • Вычисляем сотни как i div 100.
    • Вычисляем десятки как (i div 10) mod 10.
    • Вычисляем единицы как i mod 10.
  4. Затем вычисляем сумму кубов цифр этого числа.
  5. Проверяем, равна ли сумма исходному числу.
  6. Если равна, выводим это число на экран.

Таким образом, программа последовательно проверит все трёхзначные числа и выведет те, которые являются числами Армстронга.

avatar
ответил 4 месяца назад

Ваш ответ

Вопросы по теме