К списку задач
Легко Решено: 0 Процент решений: 0%

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

Проверьте, равно ли число сумме его цифр, возведённых в степень, равную количеству цифр.

Чему вы научитесь

  • Считать цифры числа
  • Возводить каждую цифру в степень, равную числу цифр, и складывать
  • Сравнивать результат с исходным числом

Условие

Число с k цифрами называется числом Армстронга, если сумма его цифр, возведённых в степень k, равна самому числу. Например, 153 = 1³ + 5³ + 3³.

Реализуйте функцию is_armstrong(n).

Входные данные

n: неотрицательное целое число.

Выходные данные

Верните true, если n — число Армстронга.

Ограничения

0 ≤ n ≤ 10¹⁸

Примеры

Пример 1
Ввод:
n = 153

Ожидаемый вывод:
expected = True
Ввод:
long long n = 153;

Ожидаемый вывод:
bool expected = true;
Ввод:
long n = 153;

Ожидаемый вывод:
bool expected = true;

Пояснение

1³ + 5³ + 3³ = 1 + 125 + 27 = 153.

Пример 2
Ввод:
n = 10

Ожидаемый вывод:
expected = False
Ввод:
long long n = 10;

Ожидаемый вывод:
bool expected = false;
Ввод:
long n = 10;

Ожидаемый вывод:
bool expected = false;

Пояснение

1² + 0² = 1, что не равно 10.

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Сначала посчитайте, сколько цифр в числе, и только потом суммируйте степени.

Подсказка 2

Сравните исходное число с суммой каждой цифры, возведённой в степень количества цифр.

Подсказка 3

Помните, что 0 — особый случай с одной цифрой.

Ожидаемая сложность

время O(k), доп. память O(1)

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.