Πρόγραμμα Python για έλεγχο αριθμού Armstrong

Σε αυτό το παράδειγμα, θα μάθετε να ελέγχετε αν ένας ακέραιος αριθμός n είναι ένας αριθμός Armstrong ή όχι.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες θεματολογίες προγραμματισμού Python:

  • Python αν… αλλιώς Δήλωση
  • Python ενώ Loop

Ένας θετικός ακέραιος αριθμός ονομάζεται αριθμός Armstrong της τάξης n εάν

abcd… = a n + b n + c n + d n +…

Στην περίπτωση ενός αριθμού Armstrong 3 ψηφίων, το άθροισμα των κύβων κάθε ψηφίου είναι ίσο με τον ίδιο τον αριθμό. Για παράδειγμα:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 είναι ένας αριθμός Armstrong. 

Πηγαίος κώδικας: Ελέγξτε τον αριθμό Armstrong (για 3 ψηφία)

 # 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

 Πληκτρολογήστε έναν αριθμό: 663 663 δεν είναι αριθμός Armstrong 

Έξοδος 2

 Πληκτρολογήστε έναν αριθμό: 407 407 είναι ένας αριθμός Armstrong 

Εδώ, ζητάμε από τον χρήστη έναν αριθμό και ελέγξτε αν είναι ένας αριθμός Armstrong.

Πρέπει να υπολογίσουμε το άθροισμα του κύβου κάθε ψηφίου. Έτσι, αρχικοποιούμε το άθροισμα στο 0 και λαμβάνουμε κάθε ψηφίο αριθμό χρησιμοποιώντας τον συντελεστή% συντελεστή Το υπόλοιπο ενός αριθμού όταν διαιρείται με το 10 είναι το τελευταίο ψηφίο αυτού του αριθμού. Παίρνουμε τους κύβους χρησιμοποιώντας εκθετικό χειριστή.

Τέλος, συγκρίνουμε το άθροισμα με τον αρχικό αριθμό και συμπεραίνουμε ότι είναι ο αριθμός Armstrong εάν είναι ίσοι.

Πηγαίος κώδικας: Ελέγξτε τον Armstrong αριθμό n ψηφίων

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") 

Μπορείτε να αλλάξετε την τιμή του αριθμού στον πηγαίο κώδικα και να εκτελέσετε ξανά τη δοκιμή.

ενδιαφέροντα άρθρα...