Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C cho các số Armstrong

Chúng tôi được giao một nhiệm vụ phải kiểm tra số n do người dùng nhập, đó có phải là Armstrong hay không.

Một số Armstrong là khi tổng của tất cả các chữ số bằng số chữ số hoặc chúng ta có thể nói thứ tự của chữ số n, giống với chữ số.

Vì vậy, dưới đây là một biểu diễn đơn giản về cách tìm số Armstrong -

Chương trình C cho các số Armstrong

Công thức -

wxyz…. = pow(w, n) +pow(x, n) + pow(y, n) + pow(z, n) + …..

Thuật toán

START
Step 1-> Declare a function to find the value after power operation on the number
   int power(int a, int b)
      Loop while b>0
         Assign power =power * a
         Decrement b by 1
      End loop
      Return power
End
Step 2-> Declare a function to count the order of a number
   int count(int n)
      Declare and set i as 0
      Loop while n!=0
         Increment i by 1
         Divide n/10 and store back in n
      End loop
   Return i
End
Step 3-> Declare a function to check number is prime or not
   int armstrong(int n)
      Declare x and call function count(n) and assign the result to x
      Declare rem = 0 and m=0 set with zero
      Loop While n
         Set rem = n %10
         Set m = m + power(rem, x)
         Set n as n/ 10
      End Loop
   Return m;
End
Step 4-> Declare main
   int main(int argc, char const *argv[])
      Declare and set n = 1634
      Call function Armstrong and check if the value is equal
         Print “it is armstrong number
      End if
      Else
         Print number isn't an armstrong number
   End
STOP

Ví dụ

#include <stdio.h>
int power(int a, int b){
   int power =1;
   while(b>0){
      power *= a;
      b--;
   }
   return power;
}
int count(int n){
   int i=0;
   while(n!=0){
      i++;
      n = n/10;
   }
   return i;
}
int armstrong(int n){
   int x = count(n);
   int rem = 0, m=0;
   while(n){
      rem = n %10;
      m += power(rem, x);
      n /= 10;
   }
   return m;
}
int main(int argc, char const *argv[]){
   int n = 1634;
   if(n == armstrong(n)){
      printf("%d is an armstrong number \n",n);
   }
   else
      printf("%d isn't an armstrong number \n",n);
   return 0;
}

Đầu ra

1634 is an armstrong number