Программа C: число Армстронга

Сделать блог о том, как создать программу на языке c о том, есть число армстронг или нет.

Число Армстронга — это число, равное сумме своих собственных цифр, возведенной в степень числа цифр. Например, 153 — это число Армстронга, потому что оно равно 1^3 + 5^3 + 3^3 = 153. В этом блоге мы обсудим, как создать программу на языке C, чтобы определить, является ли заданное число число Армстронга или нет.

Шаг 1: Понимание логики

Прежде чем приступить к части программирования, нам нужно понять логику числа Армстронга. Число Армстронга можно найти, выполнив следующие действия:

1.Возьмите введенный номер у пользователя.

int main() {
   int n, originalNumber, remainder, result = 0, count = 0 ;
   printf("Enter an integer: ");
   scanf("%d", &n);

   originalNumber = n;

2.Подсчитайте количество цифр во входном числе.

// Calculating the number of digits
   while (originalNumber != 0) {
      originalNumber /= 10;
      ++count;
   }

3. Возведите каждую цифру в степень количества цифр.

4.Добавьте результаты, полученные на шаге 3.

originalNumber = n;

   // Calculating the Armstrong number
   while (originalNumber != 0) {
      rem = originalNumber % 10;
      result += pow(rem, count);
      originalNumber /= 10;

5.Если сумма, полученная на шаге 4, равна введенному числу, то это число является числом Армстронга. В противном случае это не так.

Шаг 2: Написание полного кода

Теперь, когда мы отдельно разобрались с логикой, вот полный код программы.

#include <stdio.h>
#include <math.h>

int main() {
   int n, originalNumber, rem, result = 0, count = 0 ;

   printf("Enter an integer: ");
   scanf("%d", &n);

   originalNumber = n;

   // Calculating the number of digits
   while (originalNumber != 0) {
      originalNumber /= 10;
      ++count;
   }

   originalNumber = n;

   // Calculating the Armstrong number
   while (originalNumber != 0) {
      rem = originalNumber % 10;
      result += pow(rem, count);
      originalNumber /= 10;
   }

   // Checking if the number is Armstrong or not
   if (result == n)
      printf("%d is an Armstrong number.", n);
   else
      printf("%d is not an Armstrong number.", n);

   return 0;
}