W tym przykładzie nauczysz się sprawdzać, czy n-cyfrowa liczba całkowita jest liczbą Armstronga, czy nie.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w Pythonie:
- Python if… else Instrukcja
- Python while Loop
Dodatnią liczbę całkowitą nazywamy liczbą Armstronga rzędu n, jeśli
abcd… = a n + b n + c n + d n +…
W przypadku liczby Armstronga składającej się z 3 cyfr, suma sześcianów każdej cyfry jest równa samej liczbie. Na przykład:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 to liczba Armstronga.
Kod źródłowy: Sprawdź numer Armstrong (dla 3 cyfr)
# Python program to check if the number is an Armstrong number or not # take input from the user num = int(input("Enter a number: ")) # initialize sum sum = 0 # find the sum of the cube of each digit temp = num while temp> 0: digit = temp % 10 sum += digit ** 3 temp //= 10 # display the result if num == sum: print(num,"is an Armstrong number") else: print(num,"is not an Armstrong number")
Wyjście 1
Wpisz numer: 663 663 nie jest numerem firmy Armstrong
Wyjście 2
Wpisz numer: 407 407 to numer firmy Armstrong
Tutaj pytamy użytkownika o numer i sprawdzamy, czy jest to numer Armstronga.
Musimy obliczyć sumę sześcianu każdej cyfry. Zatem inicjalizujemy sumę na 0 i uzyskujemy każdą cyfrę za pomocą operatora modułu%. Pozostała część liczby podzielonej przez 10 jest ostatnią cyfrą tej liczby. Bierzemy kostki za pomocą operatora wykładnika.
Na koniec porównujemy sumę z liczbą pierwotną i dochodzimy do wniosku, że jest to liczba Armstronga, jeśli są równe.
Kod źródłowy: Sprawdź liczbę n cyfr firmy Armstrong
num = 1634 # Changed num variable to string, # and calculated the length (number of digits) order = len(str(num)) # initialize sum sum = 0 # find the sum of the cube of each digit temp = num while temp> 0: digit = temp % 10 sum += digit ** order temp //= 10 # display the result if num == sum: print(num,"is an Armstrong number") else: print(num,"is not an Armstrong number")
Możesz zmienić wartość num w kodzie źródłowym i uruchomić ponownie, aby go przetestować.