Hola:
Como te comento, tienes un poco de lío. Estás metiendo todas las cifras de todos los números en int[] separar = new int[leerNumero*9999], por lo que el 1 estaría en separar[0], el 2 en separar[1] y así sucesivamente, hasta el 10 que tendría el 1 en separar[9] y el 0 en separar[10] y así sucesivamente. Es decir, todo un lío para saber dónde empieza y acaba cada número.
Yo haría lo siguiente (pseudocodigo)
Código Java:
Ver originalpide numero final al usuario
para cada numero desde 1 hasta numero final
calcula longitud de numero
(ya lo haces convirtiendo a
String) crea un array cifras de esa longitud
mete las cifras del numero en el array
haz la comprobacion de las cifras con los dos bucles que te dije (si solo hay una cifra, no entrará en el bucle más interno).
de esta forma queda mucho mas simple, no necesitas un array separar gigantesto.
y en genera, cuando tengas un problema intenta partirlo en problemas mas pequeños. Tu problema original (el enunciado) tiene un problema más pequeño que deberías resolver antes y que te comenté, que es saber si un número tiene cifras repetidas. Y si me apuras, de este puedes sacar otro más pequeño, separar un número en sus cifras. Si resuelves bien el problema pequeño, es más fácil ir aproximándose a la solución final.
Se bueno.