w3resource

C Exercises: Find narcissistic decimal numbers within a specific range

C Numbers: Exercise-34 with Solution

Write a program in C to find narcissistic decimal numbers within a specific range.

Test Data
Input the lower limit: 100
Input a upper limit: 1000

Sample Solution:

C Code:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>

int main() 
{
    int nl, nu; // Variables for lower and upper limit of the range
    printf("\n\n Find the narcissistic decimal numbers between a specific range: \n");
    printf(" --------------------------------------------------------------------\n");
    printf(" Input the lower limit: ");
    scanf("%d", &nl); // Reading the lower limit from the user
    printf(" Input an upper limit: ");
    scanf("%d", &nu); // Reading the upper limit from the user
    printf(" The narcissistic decimal numbers between %d and %d are: \n", nl, nu);

    int i, ctr, j, orn, n, m, sum; // Variables for iteration, counting, number manipulation, and sum

    // Loop through numbers in the range [nl, nu] to find narcissistic decimal numbers
    for (orn = nl; orn <= nu; orn++)
    {
        ctr = 0; // Counter to count digits in the number
        sum = 0; // Variable to store the sum of digits powered by the number of digits

        // Count the number of digits in the current number 'orn'
        n = orn;
        while (n > 0) 
        {
            n = n / 10;
            ctr++;
        }

        // Calculate the sum of digits raised to the power of the count of digits
        n = orn;
        while (n > 0) 
        {
            m = n % 10;
            sum = sum + pow(m, ctr);
            n = n / 10;
        }

        // Check if the sum of powered digits is equal to the original number 'orn'
        if (sum == orn)
        {
            printf(" %d ", orn); // Print the narcissistic decimal number found
        }
    }
    printf("\n");
}

Sample Output:

 Input the lower limit: 100                                                                                   
 Input a upper limit: 1000                                                                                    
 The narcissistic decimal numbers between 100 and 1000 are:                                                   
 153  370  371  407

Visual Presentation:

C programming: Find narcissistic decimal numbers within a specific range.

Flowchart:

Flowchart: Find narcissistic decimal numbers within a specific range.

C Programming Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a program in C to generate mersenne primes within a range of numbers.
Next: Write a program in C to print the first 20 numbers of the Pell series.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.