Числа армстронга натуральное число называется числом армстронга

Число Армстронга (также самовлюблённое число, совершенный цифровой инвариант; англ. pluperfect digital invariant, PPDI ) — натуральное число, которое в данной системе счисления равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Иногда, чтобы считать число таковым, достаточно, чтобы степени, в которые возводятся цифры, были равны m — тогда число можно назвать m -самовлюблённым.

Например, десятичное число 153 — число Армстронга, потому что

1 3 + 5 3 + 3 3 = 153.

Содержание

Формальное определение [ править | править код ]

Пусть n = ∑ i = 1 k d i b i − 1 <displaystyle n=sum _^d_b^> — число, записываемое d k d k − 1 . . . d 1 <displaystyle d_d_. d_<1>> в системе счисления с основанием b <displaystyle b> .

Если при некотором m <displaystyle m> случится так, что n = ∑ i = 1 k d i m <displaystyle n=sum _^>^> , то n <displaystyle n> является m <displaystyle m> -самовлюблённым числом. Если, сверх того, m = k <displaystyle m=k> , то n <displaystyle n> можно назвать истинным числом Армстронга.

Очевидно, что при любом m <displaystyle m> может существовать лишь конечное число m <displaystyle m> -самовлюблённых чисел, так как, начиная с некоторого k <displaystyle k> , k ⋅ 9 k 10 k − 1 − 1 <displaystyle kcdot 9^ .

Упоминания в литературе [ править | править код ]

«Существуют только четыре числа (кроме 1), равных сумме кубов цифр, например, 153 = 1 3 + 5 3 + 3 3 , 370 = 3 3 + 7 3 + 0 3 , 371 = 3 3 + 7 3 + 1 3 , 407 = 4 3 + 0 3 + 7 3 . Всё это забавные факты, весьма подходящие для газетных колонок с головоломками, способные позабавить любителей, но ничего в них не затронет сердце математика.»

Числа Армстронга в десятичной системе [ править | править код ]

В десятичной системе существует всего 88 чисел Армстронга. В промежутке 1 [3] :

Читайте также:  D link dir 320 пароль wifi

1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54 748, 92 727, 93 084, 548 834, 1 741 725, 4 210 818, 9 800 817, 9 926 315, 24 678 050, 24 678 051, 88 593 477, 146 511 208, 472 335 975, 534 494 836, 912 985 153, 4 679 307 774.

Самое большое число Армстронга содержит 39 цифр: 115 132 219 018 763 992 565 095 597 973 971 522 401 .

Числа Армстронга в других системах счисления [ править | править код ]

  • В троичной системе счисления [1] : 13, 23, 123, 223, 1223, …
  • В четверичной системе счисления [1][4] : 14, 24, 34, 1304, 1314, 2034, 2234, 3134, 3324, 11034, 33034, …

Похожие классы чисел [ править | править код ]

Иногда терминами «самовлюблённые числа» называют любой тип чисел, которые равны некоторому выражению от их собственных цифр. Например, таковыми могут быть: совершенные и дружественные числа, числа Брауна, числа Фридмана, счастливые билеты и тому подобные.

Натуральное десятичное N — значное число называется числом Армстронга, если сумма его цифр, возведенных в степень N, равна самому числу.

Примеры: 153 = 1 3 + 5 3 + 3 3 ; 1634 = 1 4 + 6 4 + 3 4 + 4 4 .

Найти все числа Армстронга для 1 9 чисел и каждое число проверить. При этом на весьма солидной машине программа могла бы работать достаточно долго. Если бы цель задания заключалась только в нахождении чисел Армстронга, а не в составлении универсальной программы, разработка которой могла бы занимать большое время, то конечно, лучше было бы за 10 минут написать и 3 часа подождать.

Идея уменьшения класса исследуемых чисел заключается в следующем : можно делать перебор не самих чисел, а значений, которые могут получаться в результате степенной суммы ( т.е. суммы цифр числа, возведенных в степень числа цифр этого числа ). Здесь используется следующее свойство : от перемены цифр местами в числе степенная сумма не меняется. Т.е. например, незачем рассматривать все числа из класса : 135, 153, 315, 351, 531 и 513; достаточно рассмотреть одно из них, например, число 135; вычислить его степенную сумму : (135)ст = 153, а потом лишь убедиться в том что число 153 — это число Армстронга. Этот метод снижает число перебираемых чисел почти в N! раз. Сам же перебор осуществляется довольно просто : рассматриваются все числа, у которых любая цифра не меньше предыдущей и не больше последующей. Например: 12, 1557, 333 и т.д.

Читайте также:  Аукс в кассетную магнитолу сони

Итак, вышеописанный метод снизил число перебираемых чисел с 10 9 до приблизительно 200000. Но это не все на чем стоит остановливаться. Можно применить еще одну хитрость, которая заключается в следующем : можно значительно ускорить вычисление степенной суммы. Можно заметить, что при вычислениях часто приходится многократно возводить некоторое число в некоторую степень. Чтобы это оптимизировать вводится двухмерный массив, в i-ой строке и j-ом столбце которого находится значение степенной суммы i с основанием j (например, Degree[123,j] = 1 j + 2 j + 3 j ). Таким образом , используется значение массива Degree[i,j]. Это существенно ускоряет процесс вычисления, если это сравнивать с некоторым процессом, в котором используется функция Degree(i,j), каждый раз вычисляющая значение i j . Для вычисления выражения 10 j аналогичнo используется массив Degree10. Нужно заметить, что такая операция возведения в степень в программе вы полняется более 10000 раз; матрица Degree заполняется в начале программы, где операция возведения i в степень j выполняется около 8000 раз.

for a:=100 to 999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
c:= (b*b*b);
d:= d+c;
end;

if (a = d) then writeln(‘число армстронга ==> ‘, a);
end;
end.

Оставьте ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *