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.
É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.
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 )
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.
É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.
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 )
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!