Programma numero Armstrong in C

Un numero Armstrong è un numero uguale alla somma dei cubi delle sue singole cifre. Ad esempio, 153 è un numero Armstrong come -

153 = (1)3 + (5)3 + (3)3
153 = 1 + 125 + 27
153 = 153

Algoritmo

L'algoritmo di questo programma è molto semplice -

START
   Step 1 → Take integer variable Arms
   Step 2 → Assign value to the variable
   Step 3 → Split all digits of Arms
   Step 4 → Find cube-value of each digits
   Step 5 → Add all cube-values together
   Step 6 → Save the output to Sum variable
   Step 7 → If Sum equals to Arms print Armstrong Number
   Step 8 → If Sum not equals to Arms print Not Armstrong Number
STOP

Pseudocodice

Possiamo redigere uno pseudocodice dell'algoritmo di cui sopra come segue:

procedure armstrong : number
   
   check = number
   rem   = 0
   
   WHILE check IS NOT 0
      rem ← check modulo 10
      sum ← sum + (rem)3
      divide check by 10
   END WHILE
      
   IF sum equals to number
      PRINT armstrong
   ELSE
      PRINT not an armstrong
   END IF

end procedure

Implementazione

Di seguito viene fornita l'implementazione di questo algoritmo. Puoi cambiare il valore della armsvariabile ed eseguire e controllare il tuo programma -

#include <stdio.h>

int main() {
   int arms = 153; 
   int check, rem, sum = 0;

   check = arms;

   while(check != 0) {
      rem = check % 10;
      sum = sum + (rem * rem * rem);
      check = check / 10;
   }

   if(sum == arms) 
      printf("%d is an armstrong number.", arms);
   else 
      printf("%d is not an armstrong number.", arms);
      
   return 0;
}

Produzione

Il risultato del programma dovrebbe essere:

153 is an armstrong number.