Хотите узнать, как проверить число Армстронга в Python?
Число Армстронга в Python — это специальное число, равное сумме своих цифр, каждая из которых возведена в степень количества своих цифр. Его также называют нарциссическим числом.
Например:
- Возьмите число и разделите его цифры, например 370, получим цифры 3, 7 и 0.
- Далее каждой цифре присвойте степень, равную количеству цифр данного числа. Здесь три цифры, поэтому каждая цифра имеет степень 3, например 3^3, 7^3 и 0^3.
- Теперь вычислите результат каждой цифры, например 3^3 = 27, 7^3 = 343 и 0^3 = 0. Наконец, сложите результаты всех трех цифр: 27+343+0 = 370.
Если сумма этих вычисленных результатов равна исходному числу, т. е. 370, то это число является числом Армстронга.
С использованием цикла for
Цикл for в Python используется для перебора последовательности или коллекции. Предварительной установки индексирующей переменной не требуется.
Вот полный код для проверки:
Check_Armstrong_number = int(input("Enter a number: ")) num = Check_Armstrong_number digit, armstrong_sum = 0, 0 length = len(str(num)) for i in range(length): digit = num % 10 num = num // 10 armstrong_sum += pow(digit, length) if armstrong_sum == Check_Armstrong_number: print("It's an Armstrong number:", Check_Armstrong_number) else: print("Not an Armstrong number:", Check_Armstrong_number)
Здесь этот цикл перебирает каждую цифру числа, а затем использует оператор по модулю(%) в Python. Он извлечет последнюю цифру заданного числа.
После этого я применил в Python целочисленный оператор(//), который удалит последнюю цифру, а затем каждая цифра, возведенная в степень длины числа, добавляется к Armstrong_sum.
for i in range(length): digit = num % 10 num = num // 10 armstrong_sum += pow(digit, length)
Выход:
Enter a number: 371 It's an Armstrong number: 371
Вы можете обратиться к изображению ниже. Это дает результат работы программы Python для проверки числа Армстронга с помощью цикла for.
Используя цикл while
В Python цикл while выполняет набор операторов, если условие истинно.
Это исходный код:
input_number = int(input("Enter a number : ")) sum_of_armstrong = 0 temp = input_number while temp > 0: digit = temp % 10 sum_of_armstrong += digit * digit * digit temp = temp//10 if sum_of_armstrong==input_number: print('It is an Armstrong number') else: print('It is not an Armstrong number')
Здесь цикл while в Python продолжается до тех пор, пока значение temp не станет равным 0.
Я применил оператор по модулю(%), чтобы извлечь последнюю цифру temp. Затем оператор(*) в Python используется для вычисления значения текущей цифры, а целочисленное деление на 10 выполняется для удаления последней цифры из temp.
while temp > 0: digit = temp % 10 sum_of_armstrong += digit * digit * digit temp = temp//10
Выход:
Enter a number : 407 It is an Armstrong number
Обратитесь к снимку экрана ниже, это даст результат работы программы Python для проверки номера Армстронга.
Используя понимание списка
Это еще один способ проверить число Армстронга в Python, используя понимание списка.
Понимание списков в Python предлагает более короткий синтаксис, когда мы хотим создать новый список на основе значений существующего списка.
Вот полный исходный код:
def is_armstrong(number): digits = [int(digit) for digit in str(number)] sum_of_cubes = sum([digit**len(digits) for digit in digits]) return sum_of_cubes == number print(is_armstrong(126)) print(is_armstrong(371)) print(is_armstrong(9474)) print(is_armstrong(123))
Здесь понимание списка помогает нам перебирать каждый символ(цифру) в строковом представлении числа Python, и полученные цифры списка содержат отдельные цифры входного числа.
Затем вычисляется сумма куба каждой цифры в списке цифр, используя понимание списка для перебора каждой цифры в списке цифр в Python.
digits = [int(digit) for digit in str(number)] sum_of_cubes = sum([digit**len(digits) for digit in digits])
Выход:
False True True False
Вы можете обратиться к снимку экрана ниже, чтобы увидеть результат работы программы Python после выполнения.
С помощью функции
Функция в Python — это блок кода, который запускается только при вызове. Мы также можем использовать функцию для проверки числа Армстронга в Python.
Исходный код Python для проверки числа Армстронга с помощью функции.
def check_armstrong_number(num): num_str = str(num) num_digits = len(num_str) armstrong_sum = sum(int(digit) ** num_digits for digit in num_str) return armstrong_sum == num num = 407 if check_armstrong_number(num): print(f"{num} is an Armstrong number.") else: print(f"{num} is not an Armstrong number.")
Выход:
407 is an Armstrong number.
Он предоставляет результат программы Python для проверки числа Армстронга с помощью функции.
Заключение
Мы можем использовать циклы в Python, такие как цикл for и цикл while, понимание списка, а также мы можем использовать такие функции, как пользовательская функция или рекурсия, для проверки чисел Армстронга.