programa Java para comprobar si el número dado es o no el número de Kaprekar

Aquí, vamos a implementar un programa Java que leerá un número entero y comprobar si es o no el número de Kaprekar .

Dado un número entero y tenemos que comprobar si es un número Kaprekar o no mediante el programa Java.

Cuál es el número de Kaprekar?

número A Kaprekar es un número en el que la suma de dígitos en su cuadrado es el número en sí.

Ejemplo:

    
9*2= 81 (Square of 9)
8+1 = 9(Sum of digits in square)

Programa para comprobar número dado Kaprekar Número o no en Java

public class KaprekarNumbers 
{
public static void main(String[] args)
{
int ctr = 0;
int base = (args.length > 0) ? Integer.parseInt(args[0]) : 10;
for(long n = 1; n <= 1000; n++)
{
String St = Long.toString(n * n, base);
for(int j = 0; j < St.length() / 2 + 1; j++)
{
String[] S = split_num(St, j);
long N1 = Long.parseLong(S[0], base);
long N2 = Long.parseLong(S[1], base);
if(N2 == 0) break;
if(N1 + N2 == n)
{
System.out.println(Long.toString(n, base) +"t" + St + "t " + S[0] + " + " + S[1]);
ctr++;
break;
}
}
}
System.out.println(ctr + " Kaprekar numbers.");
}
private static String[] split_num(String str, int idx)
{
String[] A1 = new String[2];
A1[0] = str.substring(0, idx);
if(A1[0].equals("")) A1[0] = "0";
A1[1] = str.substring(idx);
return A1;
}
}

salida

First run:
Kaprekar number between 1 to 1000.
1 1 0 + 1
9 81 8 + 1
45 2025 20 + 25
55 3025 30 + 25
99 9801 98 + 01
297 88209 88 + 209
703 494209 494 + 209
999 998001 998 + 001
8 Kaprekar numbers.
Second run:
Kaprekar number between 1 to 100.
1 1 0 + 1
9 81 8 + 1
45 2025 20 + 25
55 3025 30 + 25
99 9801 98 + 01
5 Kaprekar numbers.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *