Напишите функцию, вычисляющую сумму четвертых степеней цифр этого числа. используя эту функцию, напишите программу, выводящую все числа, равные сумме четвертых степеней своих цифр.
Сумма 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.
svetavalera
29.12.2022
Рекомендую для задачи взять принцип работы почтовой службы, там сортировка имеет критически важное значение.
Например: В почтовое отделение поступило 45 посылок и 68 писем, которые необходимо рассортировать по индексу, весу (или любому другому критерию, которые придумать должен решающий задачу). Так же на почту из центрального отделения привезли 30 посылок и 142 письма, которые необходимо рассортировать для почтальонов по принципу (напрмер номера домов, фамилии получателей и вес (объем) посылки, для определения вида доставки, а так же внутри этой подкатегорию сортировки по имени, номеру и т.п.). Тут можно много сюжетов придумать, думаю вам легче будет это сделать, я лишь предложил направление. Надеюсь полезное.
dvpered
29.12.2022
Муравей может оказаться в точках из диапазона от -60 до 60 с ЧЕТНЫМИ значениями. Т.е. это могут быть точки -60, -58, -56, -54 ..., 0, 2, ..., 58, 60 Если муравей будет ползти не меняя направления влево или вправо по координатной прямой, то он окажется в точках -60 или 60 соответственно. Если направление будет меняться, то одни и те же единичные отрезки он будет проползать по 2 (4, 6, 8 и т.д.) раз. Если x - количество единичных отрезков, которые муравей прополз 1 раз, а y - количество отрезков, которые муравей прополз 2 раза, то можно записать x+2y=60. Т.к. 60 и 2y - четные, то и x - четное.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Напишите функцию, вычисляющую сумму четвертых степеней цифр этого числа. используя эту функцию, напишите программу, выводящую все числа, равные сумме четвертых степеней своих цифр.
С другой стороны, 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.