Вы изо всех сил пытаетесь найти число Армстронга в интервале в Python? Позвольте мне объяснить вам на различных примерах.

Если сумма цифр, возведенная в степень длины, равна самому числу, это число Армстронга. Итак, мы можем создать собственную функцию, используя циклы и условные операторы, для поиска числа Армстронга в Python.

Содержание

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

Вот полный код Python для нахождения числа Армстронга от 1 до 1000.

low_range = 1
high_range = 1000

for num in range(low_range, high_range + 1):
    order = len(str(num))
    armstrong_sum = 0

    temp = num
    while temp > 0:
        digit = temp % 10
        armstrong_sum += digit ** order
        temp //= 10

    if num == armstrong_sum:
        print(num, end=" , ")

Здесь цель использования этих строк кода Python — перебор диапазона заданных чисел. Затем вычислите сумму каждой цифры, возведенную в степень количества цифр данного числа.

Теперь проверьте, равна ли сумма исходному числу. Этот процесс является распространенным и простым способом проверки номеров Армстронга.

for num in range(low_range, high_range + 1):
    order = len(str(num))
    armstrong_sum = 0

    temp = num
    while temp > 0:
        digit = temp % 10
        armstrong_sum += digit ** order
        temp //= 10

Выход:

1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 153 , 370 , 371 , 407 ,

На снимке экрана ниже показан результат выполнения кода Python для поиска числа Армстронга в Python от 1 до 1000.

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

Поиск чисел в диапазоне

Мы можем попросить пользователя ввести нижнее и верхнее числа, необходимые для нахождения числа Армстронга в диапазоне в Python.

Программа для поиска числа:

lower_number = int(input("Enter lower number : "))  
upper_number = int(input("Enter upper number : "))  
  
for number in range(lower_number,upper_number + 1):  
   armstrong_sum = 0  
   temp = number 
   while temp > 0:  
       digit = temp % 10  
       armstrong_sum = armstrong_sum + digit ** 3  
       temp = temp // 10  
  
   if number == armstrong_sum:  
       print(number)

Попросите пользователя ввести нижнее и верхнее числа, чтобы установить диапазон, и найдите число Армстронга в Python в этом диапазоне.

lower_number = int(input("Enter lower number : "))  
upper_number = int(input("Enter upper number : "))

Выход:

Enter lower number : 100
Enter upper number : 500
153
370
371
407

Вы можете обратиться к изображению ниже, на котором показан результат работы кода для поиска числа Армстронга в диапазоне в Python.

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

Путем импорта математической функции

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

Мы можем использовать функцию math.pow() для вычисления степени чисел.

Вот полный исходный код:

import math

first, second = 150, 10000

def is_Armstrong(val):
    armstrong_sum_value  = 0
    temp_list = [int(d) for d in str(val)]

    for i in range(0, len(temp_list)):
          armstrong_sum_value = armstrong_sum_value + math.pow(temp_list[i], len(temp_list))

    if   armstrong_sum_value  == val:
        print(str(val) + ", ", end="")

for i in range(first, second + 1):
    is_Armstrong(i)

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

Эта функция math.pow() из модуля math используется для вычисления степени заданного числа.

 armstrong_sum_value = armstrong_sum_value + math.pow(temp_list[i], len(temp_list))

Выход:

153, 370, 371, 407, 1634, 8208, 9474,

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

Поиск числа Армстронга с использованием математической функции

Для печати первого числа

Это еще один способ найти число Армстронга в Python. Вот полный код Python для получения первого N Armstrong на Python.

limit_for_armstrong_number = int(input('For getting the first N Armstrong numbers, enter the value of N: '))
count = 0
initial_value = 1
print('The Armstrong numbers in this range are: ')

while(count!=limit_for_armstrong_number):
    num_digits=len(str(initial_value))
    current_num=initial_value
    digit_sum = 0
    if(num_digits>3):
        while current_num!= 0:
            digit = num_digits%10
            digit_sum += digit** num_digits
            current_num = current_num//10
        if digit_sum == initial_value:
            count+=1
            print(initial_value)
    else:
        while current_num!= 0:
            digit=current_num%10
            digit_sum += digit**3 
            current_num = current_num//10
        if digit_sum == initial_value:
            count+=1
            print(initial_value)
    initial_value+=1

Здесь запустите цикл while, пока не будет найдено нужное число Армстронга, и вычислите количество цифр в текущем начальном значении_значения. Затем установите current_num на текущее оцениваемое число и инициализируйте значение переменной равным 0.

while(count!=limit_for_armstrong_number):
num_digits=len(str(initial_value))
current_num=initial_value
digit_sum = 0

Ниже цикл while в Python проверяет, превышает ли количество цифр 3. Он перебирает каждую цифру, пока она не станет 0, а затем извлекает сумму ее куба. Извлеките последнюю цифру числа и сохраните ее в значении цифры(т. е. n).

Теперь удалите последнюю цифру с помощью оператора // в Python и проверьте, равна ли сумма ее куба исходному числу, а затем увеличьте ее на +1, если это число Армстронга.

if(num_digits>3):
        while current_num!= 0:
            digit = num_digits%10
            digit_sum += digit** num_digits
            current_num = current_num//10
        if digit_sum == initial_value:
            count+=1
            print(initial_value)

Внутри этого цикла while мы извлекаем последнюю цифру числа и вычисляем сумму его куба. Затем удалите последнюю цифру из числа и проверьте, верно ли условие. Счет увеличивается.

Кроме того, он увеличивает текущее число для следующей итерации.

while current_num!= 0:
            digit=current_num%10
            digit_sum += digit**3 
            current_num = current_num//10
        if digit_sum == initial_value:
            count+=1
            print(initial_value)
    initial_value+=1

Вывод: на снимке экрана ниже показан результат после выполнения программы Python.

Для печати первого числа 

Заключение

Я надеюсь, что это руководство предоставит полезную информацию для программы Python для поиска числа Армстронга в интервале. Здесь я продемонстрировал различные примеры, которые помогут вам найти число Армстронга в Python в различных сценариях, например, от 1 до 1000, в заданном диапазоне, с использованием математической функции, а также найти первое число N Армстронга.

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