w3resource

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

C++ Numbers: Exercise-10 with Solution

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

Visual Presentation:

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

Sample Solution:

C++ Code :

#include<bits/stdc++.h> // Include the entire standard C++ library
using namespace std;

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; // Calculate the square of the number
    int ctr_digits = 0; // Variable to count the number of digits in the square

    // Calculate the number of digits in the square of n
    while (sqr_n)
    {
        ctr_digits++; // Increment the digit count
        sqr_n /= 10; // Reduce the number by one digit
    }

    sqr_n = n * n; // Reset sqr_n to n squared
    for (int r_digits = 1; r_digits < ctr_digits; r_digits++)
    {
        int eq_parts = pow(10, r_digits); // Determine the equal parts for the comparison

        if (eq_parts == n)
            continue; // If equal parts match the number, skip the comparison

        // Calculate the sum of two parts after splitting the square number
        int sum = sqr_n / eq_parts + sqr_n % eq_parts;

        if (sum == n)
            return true; // If the sum matches the original number, it's a Kaprekar number
    }
    return false; // If no condition satisfies, it's not a Kaprekar number
}

int main()
{
    cout << "\n\n Generate and show all Kaprekar numbers less than 1000: \n"; // Display a message for user
    cout << " -----------------------------------------------------------\n";
    cout << " The Kaprekar numbers less than 1000 are: " << endl;

    // Check for Kaprekar numbers in the range from 1 to 999 and display them
    for (int i = 1; i < 1000; i++)
    {
        if (chkkaprekar(i))
        {
            cout << i << " "; // Print the Kaprekar number
        }
    }
    cout << endl;
    return 0; // End of the program
}

Sample Output:

 Generate and show all Kaprekar numbers less than 1000:                
 -----------------------------------------------------------           
 The Kaprekar numbers less than 1000 are:                              
1 9 45 55 99 297 703 999  

Flowchart:

Flowchart: Generate and show all Kaprekar numbers less than 1000

C++ 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?



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/cpp-exercises/numbers/cpp-numbers-exercise-10.php