From a30ddcbb20a99dc5ec7f3cecee7cc8a249eabe43 Mon Sep 17 00:00:00 2001 From: anujparwal Date: Thu, 23 Oct 2025 13:07:04 +0530 Subject: [PATCH 1/2] Added Armstrong Number checker --- .../mathematical/armstrong_number.cpp | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 CPP/algorithms/mathematical/armstrong_number.cpp diff --git a/CPP/algorithms/mathematical/armstrong_number.cpp b/CPP/algorithms/mathematical/armstrong_number.cpp new file mode 100644 index 00000000..8d688610 --- /dev/null +++ b/CPP/algorithms/mathematical/armstrong_number.cpp @@ -0,0 +1,65 @@ +/* +Armstrong number: An Armstrong number is a number that is equal to the sum of its own +digits, each raised to the power of the total number of digits. + +Author = Anuj Parwal +*/ +#include +using namespace std; +//Simple power function which is to be used later: +long long int power(int base, int exp) { + long long int result = 1; + for (int i = 0; i < exp; i++) { + result *= base; + } + return result; +} +/*The following function checks whether or not the number provided is armstrong number or +not. If the number is an armstrong number, it will return 1 but if it isn't, 0 will be returned. +*/ +int armstrong(long long int n){ + int num_dig = 0; + long long int num_temp1 = n; + long long int num_temp2 = n; + for (int i = 0; i < 18; i++){ + num_temp1/=10; + num_dig++; + if(num_temp1==0){ + break; + } + } + /*Initialising sum, and then adding digits to the power of the number of digits to + it*/ + long long int sum = 0; + for (int i = 0; i < 18; i++){ + int j = num_temp2%10; + sum += power(j, num_dig); + num_temp2/=10; + if(num_temp2==0){ + break; + } + } + //if it is an armstrong number, n=sum + if(sum==n){ + return 1; + } + else{ + return 0; + } +} +int main(){ + //Initialising an taking input of number: + int n; + cout << "Enter your number here: "; + cin >> n; + int checker = armstrong(n); + if(checker==0){ + cout << "No, it is not an armstrong number."; + } + else{ + cout << "Yes, it is an Armstrong number."; + } + return 0; +} +/*Space Complexity = O(1) +Time Complexity = O(n)*/ \ No newline at end of file From 862b4f3fa8a7ecd7e9d8e219595a0b53f4e6890a Mon Sep 17 00:00:00 2001 From: anujparwal Date: Thu, 23 Oct 2025 13:09:16 +0530 Subject: [PATCH 2/2] Added Armstrong Number checker --- CPP/algorithms/mathematical/armstrong_number.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPP/algorithms/mathematical/armstrong_number.cpp b/CPP/algorithms/mathematical/armstrong_number.cpp index 8d688610..8d0fd270 100644 --- a/CPP/algorithms/mathematical/armstrong_number.cpp +++ b/CPP/algorithms/mathematical/armstrong_number.cpp @@ -48,7 +48,7 @@ int armstrong(long long int n){ } } int main(){ - //Initialising an taking input of number: + //Initialising and taking input of number: int n; cout << "Enter your number here: "; cin >> n;