Хотите узнать, как проверить число Армстронга в 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.

С использованием цикла 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 для проверки номера Армстронга.

Используя цикл while

Используя понимание списка

Это еще один способ проверить число Армстронга в 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, понимание списка, а также мы можем использовать такие функции, как пользовательская функция или рекурсия, для проверки чисел Армстронга.

Добавить комментарий