In dit voorbeeld leert u controleren of een n-cijferig geheel getal een Armstrong-getal is of niet.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende programmeeronderwerpen in Python:
- Python if… else-instructie
- Python while Loop
Een positief geheel getal wordt een Armstrong-getal van de orde n als genoemd
abcd … = een n + b n + c n + d n + …
In het geval van een Armstrong-nummer van 3 cijfers, is de som van kubussen van elk cijfer gelijk aan het nummer zelf. Bijvoorbeeld:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 is een Armstrong-getal.
Broncode: controleer Armstrong-nummer (voor 3 cijfers)
# 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")
Uitgang 1
Voer een nummer in: 663663 is geen Armstrong-nummer
Uitgang 2
Voer een nummer in: 407407 is een Armstrong-nummer
Hier vragen we de gebruiker om een nummer en kijken of het een Armstrong-nummer is.
We moeten de som van de kubus van elk cijfer berekenen. We initialiseren de som dus op 0 en verkrijgen elk cijfer met behulp van de modulus-operator%. De rest van een getal wanneer het wordt gedeeld door 10, is het laatste cijfer van dat getal. We nemen de kubussen met behulp van de exponent-operator.
Ten slotte vergelijken we de som met het oorspronkelijke getal en concluderen we dat het een Armstrong-getal is als ze gelijk zijn.
Broncode: controleer het Armstrong-aantal n cijfers
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")
U kunt de waarde van num in de broncode wijzigen en opnieuw uitvoeren om deze te testen.