Introducción
En este laboratorio, aprenderemos sobre el número de Armstrong y escribiremos un programa en C para verificar si un número es un número de Armstrong o no. Un número de Armstrong es un número que es la suma de sus propios dígitos elevados cada uno a la potencia del número de dígitos.
Por ejemplo,
153 es un número de Armstrong, porque 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27. 371 es un número de Armstrong, porque 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.
Crea un nuevo archivo de C
Primero, necesitamos crear un nuevo archivo C en el directorio ~/project/, llamémoslo main.c.
touch ~/project/main.c
Encontrando números de Armstrong entre 1 y 500
Vamos a escribir un programa en C para encontrar los números de Armstrong entre 1 y 500.
#include <stdio.h>
#include <math.h>
int main() {
printf("\nLos números de Armstrong entre 1 y 500 son: \n");
for (int i = 1; i <= 500; i++) {
int t = i, sum = 0;
while (t!= 0) {
int digit = t % 10;
sum += pow(digit, 3);
t /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
Verificando si un número es un número de Armstrong
Ahora vamos a escribir un programa en C para comprobar si un número es un número de Armstrong o no.
#include <stdio.h>
#include <math.h>
int main() {
int n, sum = 0;
printf("Ingrese un número: ");
scanf("%d", &n);
int temp = n;
while (temp!= 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == n) {
printf("%d es un número de Armstrong.\n", n);
} else {
printf("%d no es un número de Armstrong.\n", n);
}
return 0;
}
Juntarlo todo
Vamos a combinar ambos programas en nuestro archivo main.c.
#include <stdio.h>
#include <math.h>
int main() {
// Números de Armstrong entre 1 y 500
printf("Los números de Armstrong entre 1 y 500 son: \n");
for (int i = 1; i <= 500; i++) {
int t = i, sum = 0;
while (t!= 0) {
int digit = t % 10;
sum += pow(digit, 3);
t /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
// Comprobando si un número es un número de Armstrong
int n, sum = 0;
printf("Ingrese un número: ");
scanf("%d", &n);
int temp = n;
while (temp!= 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == n) {
printf("%d es un número de Armstrong.\n", n);
} else {
printf("%d no es un número de Armstrong.\n", n);
}
return 0;
}
Resumen
En este laboratorio, aprendimos sobre los números de Armstrong y cómo encontrarlos en un rango dado, y cómo comprobar si un número es un número de Armstrong o no. Esperamos que hayas disfrutado de este laboratorio y que te haya ayudado a aprender más sobre la programación en C.



