Untitled

 avatar
unknown
c_cpp
4 years ago
840 B
7
Indexable
#include "math.h"
#include "stdbool.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

bool is_armstrong_number(int number) {
	int digitLength, *digits, sumOfDigits=0;
	char temp[10];

	sprintf(temp, "%i", number);
	digitLength = (int)strlen(temp);
	
	printf("You're entered %s.\n", temp);
	printf("%i number has %i digits.\n", number, digitLength);

	digits = (int*)malloc(digitLength*sizeof(int));

	for(int i=0; i<digitLength; i++) {
		digits[i] = temp[i]-'0';
		sumOfDigits+=pow(digits[i], digitLength);
	}

	return (sumOfDigits==number) ? true : false;
}

int main() {
	bool check;
	int number;

	printf("Enter a number: ");
	scanf("%i", &number);

	check = is_armstrong_number(number);

	(check==true)
		? printf("%i is an armstrong number.\n", number)
		: printf("%i isn't an armstrong number.\n", number);
	
	return 0;
}
Editor is loading...