Число Армстронга — это такое натуральное число, которое равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Найти все такие числа от 1 до n.
Решение:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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. |