Метод по подсчету цифр:
public static int getCountsOfDigits(Integer num) {
        int count = 0;
        while (num>0){
            int a = (int) Math.pow(10, count);
            count++;
            num = num / a;
            System.out.println(num);
            }
        return count;
    }
Пробное число: 8956798 Вывод:
8956798
895679
8956
8
0
Почему он пропускает цифры: сначало пропусти одну "7", потом две "9 и 5" и далее в геометрической прогрессии. С тепень я возвожу на единицу же