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:
Flowchart:
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.
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
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics