Dans cet exemple, vous apprendrez à trouver tous les nombres Armstrong entre deux entiers entrés par l'utilisateur.
Pour comprendre cet exemple, vous devez avoir la connaissance des sujets de programmation C suivants:
- C if… else Déclaration
- C pour boucle
Un entier positif est appelé un nombre d'Armstrong (d'ordre n) si
abcd… = an + bn + cn + dn +
Dans le cas d'un nombre Armstrong de 3 chiffres, la somme des cubes de chaque chiffre est égale au nombre lui-même. Par exemple, 153 est un nombre Armstrong car
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Avant d'essayer ce programme, apprenez à vérifier si un entier est un nombre Armstrong ou non.
Nombres Armstrong entre deux entiers
#include #include int main() ( int low, high, number, originalNumber, rem, count = 0; double result = 0.0; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Armstrong numbers between %d and %d are: ", low, high); // iterate number from (low + 1) to (high - 1) // In each iteration, check if number is Armstrong for (number = low + 1; number < high; ++number) ( originalNumber = number; // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10; ++count; ) originalNumber = number; // result contains sum of nth power of individual digits while (originalNumber != 0) ( rem = originalNumber % 10; result += pow(rem, count); originalNumber /= 10; ) // check if number is equal to the sum of nth power of individual digits if ((int)result == number) ( printf("%d ", number); ) // resetting the values count = 0; result = 0; ) return 0; )
Production
Entrez deux nombres (intervalles): 200 2000 Les nombres Armstrong entre 200 et 2000 sont: 370371407 1634
Dans le programme, la boucle externe est itérée de (low + 1) à (high - 1) . À chaque itération, il est vérifié si le nombre est un nombre Armstrong ou non.
À l'intérieur de la boucle externe, le nombre de chiffres d'un entier est calculé en premier et stocké dans count
. Et, la somme de la puissance des chiffres individuels est stockée dans la variable de résultat.
Si nombre est égal à result
, le nombre est un nombre Armstrong.
Remarque: vous devez réinitialiser le nombre et le résultat à 0 à chaque itération de la boucle externe.