Ebben a példában megtanulja ellenőrizni, hogy egy n jegyű egész szám Armstrong-e vagy sem.
A példa megértéséhez ismernie kell a következő Python programozási témákat:
- Python if… else nyilatkozat
- Python, míg a hurok
A pozitív egész számot Armstrong-számnak nevezzük, ha n
abcd… = a n + b n + c n + d n +…
Armstrong 3 jegyű száma esetén az egyes számjegyek kockáinak összege megegyezik magával a számmal. Például:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 Armstrong-szám.
Forráskód: Ellenőrizze Armstrong számát (3 számjeggyel)
# 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")
1. kimenet
Írjon be egy számot: A 663 663 nem Armstrong-szám
2. kimenet
Írjon be egy számot: a 407 407 egy Armstrong-szám
Itt kérünk egy számot a felhasználótól, és ellenőrizzük, hogy Armstrong-e.
Ki kell számolnunk az egyes számjegyek kockájának összegét. Tehát inicializáljuk az összeget 0-ra, és megkapjuk az egyes számjegyeket a% modulus operátor használatával. A szám fennmaradó része, ha elosztjuk 10-vel, a szám utolsó számjegye. A kockákat exponens operátorral vesszük fel.
Végül összehasonlítjuk az összeget az eredeti számmal, és arra a következtetésre jutunk, hogy Armstrong-szám, ha egyenlőek.
Forráskód: Ellenőrizze Armstrong n számjegyének számát
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")
Megváltoztathatja a num értékét a forráskódban, és újra futtathatja annak tesztelésére.