Причина, по которой в вашей программе нельзя вводить числа, состоящие из 11 и более цифр, скорее всего, связана с ограничением размера переменной, которую вы используете для хранения вводимого числа. Например, если вы используете переменную типа int, она может хранить числа до 2 147 483 647 включительно (10 знаков), и если вы вводите число более этого значения, возникает переполнение переменной.
Для исправления этой проблемы, вы можете использовать переменные большего размера, например, long long или BigInteger, которые способны хранить числа значительно большего размера.
Чтобы улучшить программу для разбиения числа на цифры и сделать ее корректно работающей с числами, содержащими более десяти цифр, можно использовать строковое представление числа. Например, можно считать число как строку и затем использовать цикл для обхода каждого символа и преобразования его обратно в число. Такой подход позволит обрабатывать числа любой длины без ограничений.