w3resource

C Exercises: Generate and show all Kaprekar numbers less than 1000

C Numbers: Exercise-7 with Solution

Write a program in C to generate and show all Kaprekar numbers less than 1000.

Sample Solution:

C Code:

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

// Function to check if a number is a Kaprekar number
bool chkkaprekar(int n)
{
    if (n == 1)
       return true; // If the number is 1, it's considered a Kaprekar number

    int sqr_n = n * n; // Square of the number
    int ctr_digits = 0; // Counter for the number of digits in the square

    // Count the number of digits in the square of the number
    while (sqr_n)
    {
        ctr_digits++;
        sqr_n /= 10;
    }

    sqr_n = n * n; // Reset the square of the number

    // Loop to check for Kaprekar property
    for (int r_digits = 1; r_digits < ctr_digits; r_digits++)
    {
         int eq_parts = pow(10, r_digits); // Calculate the divisor for splitting the square

         if (eq_parts == n)
            continue; // Skip when the divisor equals the number itself

         // Calculate the sum of the split parts of the square
         int sum = sqr_n / eq_parts + sqr_n % eq_parts;

         if (sum == n)
           return true; // If the sum of split parts equals the number, it's a Kaprekar number
    }
    return false; // If the conditions aren't met, it's not a Kaprekar number
}

// Main function
int main()
{
    printf("\n\n Generate and show all Kaprekar numbers less than 1000: \n");
    printf(" -----------------------------------------------------------\n");
    printf(" The Kaprekar numbers less than 1000 are: \n");

    // Loop to check Kaprekar numbers less than 1000
    for (int i = 1; i < 1000; i++)
    {
        if (chkkaprekar(i)) // Check if 'i' is a Kaprekar number
        {
            printf("%d ", i); // Print 'i' if it's a Kaprekar number
        }
    }

    printf("\n");
    return 0;
}

Sample Output:

 The Kaprekar numbers less than 1000 are:                                                                     
1 9 45 55 99 297 703 999 

Visual Presentation:

C programming: Generate and show all Kaprekar numbers less than 1000.

Flowchart:

Flowchart: Generate and show all Kaprekar numbers less than 1000

C Programming Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a program in C to check whether a given number is a Kaprekar number or not.
Next: Write a program in C to check whether a number is Lychrel number or not.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/c-programming-exercises/numbers/c-numbers-exercise-7.php