Maison  >  Article  >  développement back-end  >  Programme Python pour obtenir la somme des nombres N Armstrong

Programme Python pour obtenir la somme des nombres N Armstrong

WBOY
WBOYavant
2023-09-12 10:41:02522parcourir

Programme Python pour obtenir la somme des nombres N Armstrong

Si chaque chiffre d'un nombre est élevé à la puissance du nombre total de chiffres puis que les sous-parties sont ajoutées et que le résultat est égal à ce nombre, le nombre est appelé nombre d'Armstrong. Dans cet exemple Python, une méthode pour trouver la somme des nombres Armstrong à n chiffres est donnée à l'aide de deux exemples différents. Dans l'exemple 1, une méthode de calcul de la somme de tous les nombres d'Armstrong à 3 chiffres est donnée. Dans l'exemple 2, l'utilisateur peut décider du nombre de bits au moment de l'exécution. Le programme teste en utilisant des nombres de 4 à 6 chiffres.

Exemple 1 - Trouvez la somme de tous les nombres Armstrong à 3 chiffres.

La traduction chinoise de

Algorithme

est :

Algorithme

Étape 1 - Obtenez une liste des trois chiffres. Appelez cette liste listofallNums.

Étape 2 - Créez une fonction qui renvoie la somme de tous les nombres élevés à la puissance 3 d'un nombre si la somme calculée est égale au nombre lui-même, sinon elle renvoie -1.

Étape 3 - Pour tous les nombres de listofArmStrNums, appelez la fonction ci-dessus et si la valeur n'est pas -1, ajoutez-la à la liste nommée listofArmStrNums.

Étape 4 - Vérifiez que tous les numéros de la liste ArmStrNums sont des numéros armStrong à 3 chiffres. Additionnez maintenant tous ces nombres ArmStrong à 3 chiffres.

Étape 5 - Exécutez le programme et vérifiez les résultats.

Le fichier Python contient ceci

numOfDigits=3
listofallNums=[]
listofArmStrNums=[]
listofsumparts=[]

def isArmStr(num, powof):
   sum = 0
   TNum = num
   while TNum > 0:
      digitt = TNum % 10
      sum += digitt ** powof
      TNum = TNum//10
    
   if sum==num:
      print('This is an Armstrong number', num)
      return sum
   else:
      return -1  

lowerNum=10**(numOfDigits-1)
highNum=10**(numOfDigits)

for item in range(lowerNum, highNum):
   listofallNums.append(item)
lastelem=len(listofallNums)-1
print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem])

for itemn in listofallNums:
   if(isArmStr(itemn, numOfDigits) != -1):
      listofArmStrNums.append(itemn)

print("List of ArmStrong Numbers: ", listofArmStrNums)

for elem in listofArmStrNums:
   listofsumparts=[]
   summ=0
   while elem > 0:
      digittt = elem % 10
      listofsumparts.append(digittt ** numOfDigits)
      elem = elem//10
   print(listofsumparts)

   total=0
   print("adding together: ")
   for ele in range(0,len(listofsumparts)):
      total = total + listofsumparts[ele]
   print(total)  


SumofallArmStrongnumbers=0
for element in listofArmStrNums:
   SumofallArmStrongnumbers = SumofallArmStrongnumbers + element
    
print("Sum of all 3 digit ArmStrong numbers is ", SumofallArmStrongnumbers )

Afficher les résultats - Exemple 1

Pour voir les résultats, exécutez le fichier Python dans une fenêtre de ligne de commande.

listofallNums contains numbers from  100  to  999
This is an Armstrong number 153
This is an Armstrong number 370
This is an Armstrong number 371
This is an Armstrong number 407
List of ArmStrong Numbers:  [153, 370, 371, 407]
[27, 125, 1]
adding together:
153
[0, 343, 27]
adding together:
370
[1, 343, 27]
adding together:
371
[343, 0, 64]
adding together:
407
Sum of all 3 digit ArmStrong numbers is  1301

Figure 1 : Affichage des résultats dans la fenêtre de commande.

Exemple 2 : Trouvez la somme de tous les nombres Armstrong à n chiffres.

La traduction chinoise de

Algorithme

est :

Algorithme

Étape 1 - Entrez la valeur N d'un nombre et obtenez une liste de tous les nombres à N chiffres. Appelez cette liste listofallNums.

Étape 2 - Créez une fonction qui renvoie la somme de tous les nombres élevés à la puissance N si la somme calculée est égale au nombre lui-même, sinon elle renvoie -1.

Étape 3 - Pour tous les nombres de listofArmStrNums, appelez la fonction ci-dessus et si la valeur n'est pas -1, ajoutez-la à la liste nommée listofArmStrNums.

Étape 4 - Vérifiez si tous les nombres de la liste des ArmStrNums sont des nombres Armstrong à N chiffres. Ajoutez maintenant tous ces nombres Armstrong à N chiffres.

Étape 5 - Exécutez le programme et vérifiez s'il y a des nombres à 4 et 5 chiffres dans le résultat.

Le fichier Python contient ceci

numOfDigits = 5
listofallNums=[]
listofArmStrNums=[]
listofsumparts=[]

def isArmStr(num, powof):
   sum = 0
   TNum = num
   while TNum > 0:
      digitt = TNum % 10
      sum += digitt ** powof
      TNum = TNum//10
    
   if sum==num:
      print('This is an Armstrong number', num)
      return sum
   else:
      return -1  

lowerNum=10**(numOfDigits-1)
highNum=10**(numOfDigits)

for item in range(lowerNum, highNum):
   listofallNums.append(item)
lastelem=len(listofallNums)-1
print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem])

for itemn in listofallNums:
   if(isArmStr(itemn, numOfDigits) != -1):
      listofArmStrNums.append(itemn)

print("List of ArmStrong Numbers: ", listofArmStrNums)

for elem in listofArmStrNums:
   listofsumparts=[]
   summ=0
   while elem > 0:
      digittt = elem % 10
      listofsumparts.append(digittt ** numOfDigits)
      elem = elem//10
   print("list of sum subparts: ", listofsumparts)

   total=0
   print("adding together: ")
   for ele in range(0,len(listofsumparts)):
      total = total + listofsumparts[ele]
   print(total)   

SumofallArmStrongnumbers=0
for element in listofArmStrNums:
   SumofallArmStrongnumbers = SumofallArmStrongnumbers + element
    
print("Sum of all ", numOfDigits, " digit ArmStrong numbers is ", SumofallArmStrongnumbers )

Afficher les résultats - Exemple 2

Ouvrez une fenêtre cmd et exécutez le fichier python pour voir les résultats.

listofallNums contains numbers from  10000  to  99999
This is an Armstrong number 54748
This is an Armstrong number 92727
This is an Armstrong number 93084
List of ArmStrong Numbers:  [54748, 92727, 93084]
list of sum subparts:  [32768, 1024, 16807, 1024, 3125]
adding together:
54748
list of sum subparts:  [16807, 32, 16807, 32, 59049]
adding together:
92727
list of sum subparts:  [1024, 32768, 0, 243, 59049]
adding together:
93084
Sum of all  5  digit ArmStrong numbers is  240559

Figure 2 : Affichage de la somme et des nombres Armstrong à n chiffres.

Dans cet article Python, la méthode pour trouver la somme des nombres Armstrong à n chiffres est donnée à l'aide de deux exemples différents. Dans l'exemple 1, une méthode est donnée pour calculer la somme de tous les nombres d'Armstrong à 3 chiffres. Dans l'exemple 2, l'utilisateur peut décider du nombre de chiffres au moment de l'exécution. Si l'utilisateur saisit 4, alors tous les nombres Armstrong à 4 chiffres et leur somme sont donnés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer