Что такое число армстронга
Перейти к содержимому

Что такое число армстронга

  • автор:

Число Армстронга в Python – Простая реализация

Привет! Сегодня давайте узнаем кое-что Интересное, номер Армстронга. Мы бы поняли, что это за число, а затем реализовали программу, чтобы проверить, является ли число числом Армстронга или нет.

Что такое число Армстронга?

Число n цифр является числом Армстронга, если сумма каждой цифры, возведенная в степень числа без цифр, равна исходному числу.

Определение числа Армстронга : ^n + b^n + c^n + d^n + … . и так далее.

Примеры числа Армстронга

Пример 1: 153

Расчет (по цифрам^3 + 5^3 + + 125 +

Выполненный расчет непосредственно равен исходному числу. Следовательно, это число является числом Армстронга.

Пример 2: 548834

Расчет (цифра–^6 + 4^6 +8^6 + 8^6 + 3^6 + + 4096 + 262144 + 262144 + 729 +

Выполненные вычисления непосредственно равны исходному числу. Следовательно, это число является числом Армстронга.

Алгоритм проверки номера Армстронга

Чтобы проверить, является ли номер номером Армстронга, необходимо выполнить следующие действия

  1. Подсчитайте количество цифр в номере.
  2. Доступ к каждой цифре осуществляется одна за другой с помощью операций mod и division
  3. Каждая цифра повышается до степени числа цифр, и результат сохраняется в отдельной переменной
  4. Шаги 2 и 3 повторяются до тех пор, пока цифры не исчерпаются.
  5. Проверьте результат, рассчитанный с исходным номером
    • Если он совпадает: Номер Армстронга
    • В противном случае: Не номер Армстронга

Псевдокод для номера Армстронга

В приведенном ниже коде показан псевдокод для проверки того, является ли число номером Армстронга:

Реализация проверки чисел Армстронга в Python

Теперь, когда мы знаем о том, что такое число Армстронга и шаги по его реализации, давайте осуществим проверку Армстронга строка за строкой.

1. Создайте исходные переменные

Сначала мы берем вход n , а затем вычисляем длину входа. Мы также храним копию входных данных, чтобы независимо от того, насколько сильно мы изменим исходный номер, у нас была копия, чтобы позже проверить номер Армстронга. Мы также инициализировали результат как 0.

Код для того же самого показан ниже:

2. Прохождение по номеру и обновление результата

Чтобы получить доступ к каждой цифре, мы берем модуль числа ( mod 10), чтобы извлечь последнюю цифру числа. Следующий шаг включает в себя обновление результата как суммы предыдущего результата и цифры, возведенной в степень числа цифр.

Последний и последний шаг, который мы делаем, – это делим число на 10, чтобы удалить последнюю цифру из числа. Тот же процесс повторяется до тех пор, пока в номере не останется больше цифр.

Код для того же самого показан ниже:

3. Проверка, является ли номер номером Армстронга или нет

Последний шаг-проверить копию числа, которое мы создали ранее, и вычислить результат, чтобы окончательно определить, является ли это число номером Армстронга или нет. Код для того же самого показан ниже:

Выходные образцы для кода

На данный момент я протестировал программу для четырех входов. Результаты для всех четырех показаны ниже:

Число Армстронга

Эта статья частично или полностью основана на одной из версий статьи в Русской Википедии (или в другом проекте Фонда Викимедиа) и находится на начальном уровне проработки

Пусть [math]\displaystyle< n = \sum_^k d_ib^ >[/math]  — число, записываемое [math]\displaystyle< d_kd_. d_1 >[/math] в системе счисления с основанием [math]\displaystyle< b >[/math] .

Если при некотором [math]\displaystyle< m >[/math] случится так, что [math]\displaystyle< n = \sum_^k ^m >[/math] , то [math]\displaystyle< n >[/math] является [math]\displaystyle< m >[/math] -самовлюблённым числом. Если, сверх того, [math]\displaystyle< m=k >[/math] , то [math]\displaystyle< n >[/math] можно назвать истинным числом Армстронга.

Очевидно, что при любом [math]\displaystyle< m >[/math] может существовать лишь конечное число [math]\displaystyle< m >[/math] -самовлюблённых чисел, так как, начиная с некоторого [math]\displaystyle< k >[/math] , [math]\displaystyle < k \cdot 9^k \lt 10^— 1 >[/math] .

Упоминания в литературе

«Существуют только четыре числа (кроме 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 <= N <= 10 находятся следующие 32 N-значные числа Армстронга [3] :

Самое большое число Армстронга содержит 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, …

Похожие классы чисел

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

Число Армстронга

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

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

Содержание

Формальное определение

Пусть n = \sum_<i = 1>^k d_ib^<i - 1>» width=»» height=»» /> — число, записываемое <i>d</i><sub><i>k</i></sub><i>d</i><sub><i>k</i> − 1</sub>. <i>d</i><sub>1</sub> в системе счиления с основанием <i>b</i>.</p>
<p>Если при некотором <i>m</i> случится так, что <img decoding=

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 не будет опубликован. Обязательные поля помечены *