Б. Кордемский указывает одно интересное число 145, которое равно сумме факториалов своих цифр: $$145=1!+4!+5!.$$ Он пишет, что неизвестно, есть ли еще такие числа, удовлетворяющие названному условию.
Program SummaFakt; const maxn=2 540 159; type interval=0..9; {цифры} var fcif:array [interval] of integer; {факториал цифр искомых чисел} k: interval; n, {пробное число} s, {сумма факториалов цифр} nn:integer; {десятки} function sumf (n:integer):integer; {сумма факториалов цифр числа n} var summa:integer; begin summa:=0; repeat summa:=summa+fcif[n mod 10]; n:=n div 10 until n=0; sumf:=summa end; begin fcif[0]:=1; {запоминаются факториалы цифр} for k:=1 to 9 do fcif[k]:=fcif[k-1]*k; for nn:=0 to maxn div 10 do {цикл для десяти чисел} begin n:=nn*10; s:=sumf(n); repeat if s=n then writeln(n); n:=n+1; {корректируется сумма факториалов цифр} s:=s-fcif[(n-1) mod 10]+fcif[n mod 10] until (s>n) or {в десятке не удается найти искомых чисел} (n mod 10=0) {закончился десяток} end end.
Выполнив эту программу, ЭВМ напечатала результаты: 1 2 145 40 585
2012-06-25 • Просмотров [ 4621 ]