/* =============================================================================================
   Wilfredo Cruz Yarlequé                              wcruzy@gmail.com
   Piura, Perú, Noviembre 28 de 2024
   =============================================================================================
   
   En matemáticas, un número de Kaprekar es aquel entero no negativo tal que, en una base dada,
   los dígitos de su cuadrado en esa base pueden ser separados en dos números que sumados dan
   el número original.

   Por ejemplo, en el sistema decimal (base 10), 45 es un número de Kaprekar porque
   
                                  45^2=2025, y 20+25=45.

   Nótese que el segundo sumando puede empezar por uno o varios ceros, como en el caso de
   
                                999^2=998001; 998+001=999.

   Los números de Kaprekar se llaman así porque fueron estudiados por el matemático indio Shri
   Dattatreya Ramachandra Kaprekar (1905 - 1986).

   Fuente: Wikipedia https://es.wikipedia.org/wiki/Número_de_Kaprekar
   ============================================================================================= */

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

void main()
{
	int i, j,l, m;
	i = 1;

	while (i<1000)
	{
		j = i * i;

		if (i <= 9)
		{
			l=j / 10;
			m=j % 10;
		}
		else
			if (i <= 99)
			{
				l = j / 100;
				m = j % 100;
			}
			else
			{
				l = j / 1000;
				m = j % 1000;
			}

		if (i == l + m)
			printf("\n%5d es un número de Kaprekar\n", i);
		i++;
	}
}