Introduction
Dans ce laboratoire, nous apprendrons à vérifier si un nombre donné est un nombre d'Armstrong en utilisant un programme C. Nous lirons d'abord une entrée entière de l'utilisateur, puis calculerons la somme de chaque chiffre élevé à la puissance du nombre total de chiffres, et enfin afficherons si le nombre est un nombre d'Armstrong ou non.
Le programme guidera l'utilisateur à travers le processus étape par étape, de la lecture de l'entrée à la détermination si le nombre est un nombre d'Armstrong.
Lecture d'un Entier
Dans cette étape, nous allons apprendre à lire une entrée entière de l'utilisateur dans un programme C pour vérifier si c'est un nombre d'Armstrong.
Tout d'abord, créons un nouveau fichier C dans le répertoire du projet :
cd ~/project
nano armstrong.c
Maintenant, écrivons le code initial pour lire un entier :
#include <stdio.h>
int main() {
int number;
// Demander à l'utilisateur d'entrer un nombre
printf("Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : ");
// Lire l'entrée entière
scanf("%d", &number);
// Afficher le nombre entré pour vérifier l'entrée
printf("Vous avez entré : %d\n", number);
return 0;
}
Compilons et exécutons le programme :
gcc armstrong.c -o armstrong
./armstrong
Sortie d'exemple :
Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : 153
Vous avez entré : 153
Décomposons le code :
scanf("%d", &number)lit un entier à partir de l'entrée utilisateur&numberpasse l'adresse mémoire de la variablenumberprintf()est utilisé pour demander à l'utilisateur et afficher le nombre entré
Calculer la Somme de Chaque Chiffre Élevé à la Puissance du Nombre de Chiffres
Dans cette étape, nous allons modifier notre programme précédent pour calculer la somme de chaque chiffre élevé à la puissance du nombre total de chiffres.
Ouvrez le fichier armstrong.c :
cd ~/project
nano armstrong.c
Mettez à jour le code pour calculer la somme des chiffres :
#include <stdio.h>
#include <math.h>
int main() {
int number, originalNumber, remainder, digitCount = 0;
long long digitSum = 0;
// Demander à l'utilisateur d'entrer un nombre
printf("Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : ");
scanf("%d", &number);
// Stocker le nombre original pour une comparaison ultérieure
originalNumber = number;
// Comptez le nombre de chiffres
while (number != 0) {
number /= 10;
digitCount++;
}
// Réinitialiser number à sa valeur originale
number = originalNumber;
// Calculer la somme de chaque chiffre élevé à la puissance du nombre de chiffres
while (number != 0) {
remainder = number % 10;
digitSum += pow(remainder, digitCount);
number /= 10;
}
// Afficher les résultats
printf("Nombre de chiffres : %d\n", digitCount);
printf("Somme des chiffres élevés à la puissance : %lld\n", digitSum);
return 0;
}
Compilez le programme avec la bibliothèque mathématique :
gcc armstrong.c -o armstrong -lm
./armstrong
Sortie d'exemple :
Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : 153
Nombre de chiffres : 3
Somme des chiffres élevés à la puissance : 153
Concepts clés expliqués :
digitCountsuit le nombre de chiffrespow(remainder, digitCount)élève chaque chiffre à la puissance du nombre total de chiffresnumber % 10extrait le dernier chiffrenumber /= 10supprime le dernier chiffre à chaque itérationlong longutilisé pour gérer les sommes de chiffres potentiellement grandes
Afficher si le Nombre est un Nombre d'Armstrong ou Non
Dans cette étape, nous allons compléter notre vérificateur de nombres d'Armstrong en comparant le nombre original à la somme des chiffres calculée.
Ouvrez le fichier armstrong.c :
cd ~/project
nano armstrong.c
Mettez à jour le code pour déterminer et afficher si le nombre est un nombre d'Armstrong :
#include <stdio.h>
#include <math.h>
int main() {
int number, originalNumber, remainder, digitCount = 0;
long long digitSum = 0;
// Demander à l'utilisateur d'entrer un nombre
printf("Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : ");
scanf("%d", &number);
// Stocker le nombre original pour une comparaison ultérieure
originalNumber = number;
// Comptez le nombre de chiffres
while (number != 0) {
number /= 10;
digitCount++;
}
// Réinitialiser number à sa valeur originale
number = originalNumber;
// Calculer la somme de chaque chiffre élevé à la puissance du nombre de chiffres
while (number != 0) {
remainder = number % 10;
digitSum += pow(remainder, digitCount);
number /= 10;
}
// Vérifier si le nombre est un nombre d'Armstrong
if (digitSum == originalNumber) {
printf("%d est un nombre d'Armstrong.\n", originalNumber);
} else {
printf("%d n'est pas un nombre d'Armstrong.\n", originalNumber);
}
return 0;
}
Compilez le programme :
gcc armstrong.c -o armstrong -lm
./armstrong
Exemples de sorties :
Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : 153
153 est un nombre d'Armstrong.
Entrez un nombre pour vérifier s'il est un nombre d'Armstrong : 154
154 n'est pas un nombre d'Armstrong.
Concepts clés expliqués :
- Comparer
digitSumavecoriginalNumber - Si elles sont égales, c'est un nombre d'Armstrong
- Le programme gère différents cas d'entrée
Résumé
Dans ce laboratoire, vous apprendrez à lire une entrée entière de l'utilisateur, à calculer la somme de chaque chiffre élevé à la puissance du nombre total de chiffres et à déterminer si le nombre est un nombre d'Armstrong. La première étape consiste à demander à l'utilisateur d'entrer un nombre et à le stocker dans une variable. La deuxième étape se concentre sur le calcul de la somme de chaque chiffre élevé à la puissance du nombre total de chiffres, qui est ensuite comparée au nombre original pour vérifier s'il s'agit d'un nombre d'Armstrong.



