armstrong number Algorithm

The Armstrong Number Algorithm is a mathematical concept used to determine if a given number is an Armstrong number, also known as a narcissistic number, pluperfect number, or pluperfect digital invariant. An Armstrong number is a number that is equal to the sum of its own digits raised to the power of the number of digits. In other words, an n-digit number is an Armstrong number if the sum of its digits, each raised to the n-th power, equals the number itself. For example, the number 153 is an Armstrong number because 1^3 + 5^3 + 3^3 = 153. To implement the Armstrong Number Algorithm, the first step is to find the number of digits (n) in the given number. This can be achieved by converting the number to a string and counting the characters, or by using logarithms to find the order of magnitude. Next, we need to break down the number into its individual digits and raise each digit to the power of n. The sum of these results is then calculated, and if this sum is equal to the original number, it is classified as an Armstrong number. This algorithm can be applied to identify Armstrong numbers in any number system and can be implemented using various programming languages to create efficient and accurate solutions.
//A number is called as Armstrong number if sum of cubes of digits of number is equal to the number itself.
// For Example 153 is an Armstrong number because 153 = 1³+5³+3³.
#include <stdio.h> 

//Function to calculate x raised to the power y
int power(int x, unsigned int y) 
{ 
	if (y == 0) 
		return 1; 
	if (y % 2 == 0) 
		return power(x, y / 2) * power(x, y / 2); 
	return x * power(x, y / 2) * power(x, y / 2); 
} 

//Function to calculate order of the number 
int order(int x) 
{ 
	int n = 0; 
	while (x) { 
		n++; 
		x = x / 10; 
	} 
	return n; 
} 

// Function to check whether the given number is 
// Armstrong number or not 
int isArmstrong(int x) 
{ 
	// Calling order function 
	int n = order(x); 
	int temp = x, sum = 0; 
	while (temp)
	{ 
		int r = temp % 10; 
		sum += power(r, n); 
		temp = temp / 10; 
	} 

	// If satisfies Armstrong condition 
	if (sum == x) 
		return 1; 
	else
		return 0; 
} 

//
int main() 
{ 
	int x = 153; 
	if (isArmstrong(x) == 1) 
		printf("True\n"); 
	else
		printf("False\n"); 

	x = 1253; 
	if (isArmstrong(x) == 1) 
		printf("True\n"); 
	else
		printf("False\n"); 

	return 0; 
} 

LANGUAGE:

DARK MODE: