Вычислить число Армстронга на Pascal

      Комментарии к записи Вычислить число Армстронга на Pascal отключены

Главная Форумы Программирование Программирование на Pascal Вычислить число Армстронга на Pascal

Помечено: 

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 4 мес., 4 нед. назад.

  • Автор
    Сообщения
  • #3760

    Число Армстронга — это такое натуральное число, которое равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Найти все такие числа от 1 до n.

    Решение:

    program functions_7;
    uses crt;
    var
      n, i, y: integer;
    function Armstrong(ai: integer): integer;
    var j, a, b, c, f, d: integer;
    begin
      a:=0; b:=0; f:=ai; d:=ai;
      while ai>0 do
      begin
        ai:=ai div 10;
        b:=b+1;
      end;
      ai:=f; f:=0;
      while ai>0 do
      begin
        a:=ai mod 10;
        ai:=ai div 10;
        c:=a;
        for j:=2 to b do a:=a*c;
          f:=f+a;
      end;
      if f=d then Armstrong:=f
      else Armstrong:=0;
    end;
    begin
      clrscr;
      write('N > '); read(n);
      writeln('Числа Армстронга:');
      for i:=1 to n do
      begin
        y:=Armstrong(i);
        if y<>0 then write(y, ' ');
      end;
      readkey;
    end.

Для ответа в этой теме необходимо авторизоваться.