Pascal. Функции. Задача 7

Число Армстронга — это такое натуральное число, которое равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Найти все такие числа от 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.
Рейтинг
( Пока оценок нет )
Загрузка ...