Si un número entero positivo es igual a la suma de los cubos de sus dígitos, entonces el número entero positivo se llama número de Armstrong. Por ejemplo, 407 = 43 + 03 + 73 es un número de Armstrong.
El propietario debe agregar la condición de que el número entero positivo sea un número de tres dígitos para que corresponda a la suma posterior de cubos. La definición del número de Armstrong es un número entero positivo de n dígitos igual a la suma de sus dígitos elevados a la enésima potencia.
Los números de tres cifras también se llaman números de narciso.
El programa es el siguiente:
#include
int main()
{
int i,t,k,a[3];
printf("Hay los siguientes números de Armstrong menores que 1000:\n");
for(i= 2;i <1000;i++) /*Determinar exhaustivamente el valor del número i que va del 2 al 1000*/
{
for(t=0,k=1000; k >=10;t++) /*Trunca cada bit del entero i (de mayor a menor)*/
{
a[t]=(i%k)/ ( k/10); /*Asignar valores a a[0]~a[2}*/
k/=10;
if(a[0]* a[0] *a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]== i)
/*Juzgar si es el número de Armstrong*/
printf("%5d",i);/*Si se cumplen las condiciones, generar*
}
printf(" \n");
}
*Resultados de la operación
Existen los siguientes números de Armstrong menores que 1000:
153 370 371 407