Cómo usar un programa C para verificar números Armstrong

Por gary sims
Usa Visual C++ para escribir un programa C para verificar si un número es un número Armstrong.
Jupiterimages/Photos.com/Getty Images

Un número Armstrong es un número entero que es igual a la suma de las potencias de n de sus dígitos, donde n es el número de dígitos. Un ejemplo sencillo es 5. Es de un dígito. 5 a la potencia de 1 es 5. Un ejemplo más complejo es 407. Tiene 3 dígitos. 4 a la potencia de 3 (64) más 0 a la potencia de 3 (0) más 7 a la potencia de 3 (343) es igual a 407. Estos cálculos son sencillos de realizar usando un programa C. Un sencillo programa Microsoft Visual C++ demuestra esto con sólo unas pocas líneas de código.

Paso 1

Haz clic en el icono "Inicio" de Windows, selecciona "Todos los programas" y "Microsoft Visual Studio 2010 Express". Haz clic en "Microsoft Visual C++ 2010 Express".

Paso 2

Haz clic en el menú "Archivo" y navega a "Nuevo". Pulsa "Proyecto" para abrir el nuevo diálogo de proyecto.

Paso 3

Haz clic en "Win32" en la vista de árbol de las plantillas instaladas en la parte izquierda del diálogo. Haz clic en "Aplicación de consola de Win32". Introduce un nombre para el proyecto (por ejemplo, "armstrong") en el campo "Nombre:" en la parte inferior del diálogo. Haz clic en "Aceptar" para abrir el diálogo "Asistente de aplicación de Win32". Haz clic en "Finalizar". Aunque esto es un proyecto en C++, el código del siguiente paso es C.

Paso 4

Cambia el código predeterminado que aparece en el editor con el código siguiente:

include "stdafx.h"

include

include

include

int main () { int x=0,y=0,sum=0; int n,l; char num[64];

/ Pide un número / printf("Por favor, introduce un número: "); scanf_s("%d", &n);

/ Calcular el número de dígitos transformándolo
/
en una cadena */ sprintf_s(num, "%d", n); l = strlen(num);

/ Calcula la suma de potencias de l de sus dígitos / y = n; while (y > 0) { x=y%10; sum=sum+(int) pow((float) x, l); y=y/10; }

/ ¿La suma de las potencias es la misma que el número original? / if(sum==n) printf("%d is an Armstrong number.\n", n); else printf("%d is not an Armstrong number.\n", n);

return 0; }

Paso 5

Pulsa "F7" o haz clic en el menú "Depurador" y "Crear solución" para compilar el programa y mostrar el resultado en la ventana de salida en la parte inferior de Visual C++:

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Si el resultado es "0 succeeded" seguido de un número de fallos, comprueba el código que has introducido y asegúrate de que es igual al código del paso 4.

Paso 6

Pulsa "Ctrl+F5" para ejecutar el programa. Introduce un número entero cuando aparezca una ventana con una consola negra y te lo pida. El resultado del cálculo se mostrará.