Напишите функцию, вычисляющую сумму четвертых степеней цифр этого числа. Используя эту функцию, напишите программу, выводящую все числа, равные сумме четвертых степеней своих цифр.
Напишите функцию, вычисляющую сумму четвертых степеней цифр этого числа. Используя эту функцию, напишите программу, выводящую все числа, равные сумме четвертых степеней своих цифр.
Ответ(ы) на вопрос:
Гость
Сумма 4-х степеней N-значного числа не превосходит N * 9^4 < 10000N.
С другой стороны, N-значное число больше 10^(N-2).
Для того, чтобы одно было равно другому, должно выполниться
10^(N - 2) < 10000N, 10^N < N * 10^6.
Так может быть, только если N < 7, поэтому ищем числа среди 1..999999.
Код:
function Sum4Deg(n: integer): integer;
var
s: integer;
begin
s := 0;
repeat
s := s + sqr(sqr(n mod 10));
n := n div 10;
until n = 0;
Sum4Deg := s;
end;
var
i: integer;
begin
for i := 1 to 999999 do
if i = Sum4Deg(i) then
writeln(i);
end.
Не нашли ответ?
Похожие вопросы