﻿ C++ : Find Narcissistic decimal numbers within a range

# C++ Exercises: Find Narcissistic decimal numbers within a specific range

## C++ Numbers: Exercise-37 with Solution

Write a C++ program to find Narcissistic decimal numbers within a specific range.

Sample Solution:

C++ Code :

``````#include <iostream> // Include input-output stream library
#include <cmath> // Include math library for mathematical operations
using namespace std; // Using standard namespace

int main() // Main function
{
int nl, nu; // Declare variables to store lower and upper limits
cout << "\n\n Find the Narcissistic decimal numbers between a specific range: \n"; // Display purpose
cout << " --------------------------------------------------------------------\n"; // Display purpose
cout << " Input the lower limit: "; // Prompt user for input
cin >> nl; // Input the lower limit
cout << " Input the upper limit: "; // Prompt user for input
cin >> nu; // Input the upper limit
cout << " The Narcissistic decimal numbers between " << nl << " and " << nu << " are: \n"; // Display purpose

int i, ctr, j, orn, n, m, sum; // Declare variables used in the following loops
for (orn = nl; orn <= nu; orn++) // Loop through the numbers within the range [nl, nu]
{
ctr = 0; // Initialize the counter to zero
sum = 0; // Initialize the sum to zero
n = orn; // Assign the current number 'orn' to 'n'
while (n > 0) // Loop to count the number of digits in 'n'
{
n = n / 10; // Divide 'n' by 10 to move to the next digit
ctr++; // Increment the digit counter
}
n = orn; // Assign the current number 'orn' to 'n' again for further processing
while (n > 0) // Loop to calculate the sum of digits raised to the power of the digit count
{
m = n % 10; // Extract the last digit of 'n'
sum = sum + pow(m, ctr); // Add the current digit raised to the power of the digit count to 'sum'
n = n / 10; // Move to the next digit by dividing 'n' by 10
}
if (sum == orn) // Check if the sum of digits raised to the power of the count is equal to the original number
{
cout << " " << orn << " "; // If equal, print the narcissistic number
}
}
cout << endl; // Move to the next line
}
``````

Sample Output:

```Find the Narcissistic decimal numbers between a specific range:
--------------------------------------------------------------------
Input the lower limit: 25
Input a upper limit: 200
The Narcissistic decimal numbers between 25 and 200 are:
153
```

Flowchart:

C++ Code Editor: