// Program 66: Kaprekar Numbers in a Range import java.util.*; class KaprekarRange { static boolean isKaprekar(int n) { long square = (long) n * n; long divisor = 10; int digits = String.valueOf(n).length(); for (int i = 1; i < digits; i++) { divisor *= 10; } return square / divisor + square % divisor == n; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int p = sc.nextInt(), q = sc.nextInt(); if (p < 1 || p >= q || q >= 5000) { System.out.println("INVALID INPUT"); return; } ArrayList list = new ArrayList<>(); for (int n = p; n <= q; n++) { if (isKaprekar(n)) { list.add(n); } } System.out.println("THE KAPREKAR NUMBERS ARE:"); System.out.println(list.isEmpty() ? "NIL" : list.toString().replace("[", "").replace("]", "")); System.out.println("FREQUENCY OF KAPREKAR NUMBERS IS: " + list.size()); } }