Как найти число Армстронга в Питон? 🧮✨
def is_armstrong_number(num):
# Преобразуйте число в строку, чтобы производить операции над отдельными цифрами
num_str = str(num)
# Вычислите сумму цифр числа, возведенных в степень, равную количеству цифр в числе
sum_of_digits = sum([int(digit) ** len(num_str) for digit in num_str])
# Проверьте, является ли полученная сумма равной исходному числу
return sum_of_digits == num
# Проверьте все числа в заданном диапазоне (например, от 1 до 1000), чтобы найти числа Армстронга
armstrong_numbers = [num for num in range(1, 1000) if is_armstrong_number(num)]
print(armstrong_numbers)
Этот код определяет функцию `is_armstrong_number`, которая проверяет, является ли данное число числом Армстронга. Затем он проверяет все числа в заданном диапазоне (например, от 1 до 1000) и сохраняет числа Армстронга в список `armstrong_numbers`. В конце кода выводится этот список.
Это решение может быть использовано для поиска чисел Армстронга в любом заданном диапазоне или для проверки, является ли конкретное число числом Армстронга.
Детальный ответ
Как найти число Армстронга в Python
Число Армстронга, также известное как число Нарциста, - это число, которое равно сумме своих цифр, возведенных в степень количества цифр числа. Например, число 153 является числом Армстронга, так как 1^3 + 5^3 + 3^3 = 153.
Давайте рассмотрим, как написать программу на Python, которая будет находить числа Армстронга.
# Функция для нахождения чисел Армстронга
def find_armstrong_numbers(start, end):
armstrong_numbers = []
for num in range(start, end + 1):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** len(str(num))
temp //= 10
if num == sum:
armstrong_numbers.append(num)
return armstrong_numbers
# Пример использования функции
start_range = 1
end_range = 1000
result = find_armstrong_numbers(start_range, end_range)
print("Числа Армстронга в заданном диапазоне:", result)
В приведенном выше примере мы определяем функцию find_armstrong_numbers, которая принимает начальное и конечное значения диапазона чисел. Внутри функции мы создаем пустой список, в который будем добавлять найденные числа Армстронга.
Затем мы запускаем цикл for, который будет перебирать все числа в заданном диапазоне. В каждой итерации цикла мы инициализируем переменную sum в ноль и создаем временную переменную temp, содержащую текущее число.
Затем мы запускаем вложенный цикл while, который будет разбивать текущее число на отдельные цифры и суммировать их, возведенные в степень количества цифр числа. Эта сумма сохраняется в переменной sum.
После завершения вложенного цикла мы проверяем, равно ли исходное число num сумме цифр, возведенных в степень. Если они равны, то число num является числом Армстронга, и мы добавляем его в список armstrong_numbers.
В конце функции мы возвращаем список найденных чисел Армстронга.
В примере использования функции мы устанавливаем начальное значение диапазона start_range = 1 и конечное значение диапазона end_range = 1000. Затем вызываем функцию find_armstrong_numbers с этими значениями и сохраняем результат в переменную result.
Наконец, мы выводим список найденных чисел Армстронга с помощью функции print.
Таким образом, программа найдет и выведет все числа Армстронга в заданном диапазоне.