Господа, доброго времени суток.
Встала следующая задача: необходимо по заданному входному натуральному числу

построить выходное натуральное число

, полученное удалением из десятичной записи числа

всех фрагментов

.
Алогритм мне ясен: надо смотреть остатки от деления исходного числа на 1000, если он равен 123, то перескакиваем три разряда (делим число на 1000 нацело и дальше работаем с ним), если он не равен 123, то к числу-результату дописываем остаток от деления на 10 и переходим к следующему разряду (то есть делим исходное число нацело на 10 и далее работаем с ним).
Предикаты равенства, функции деления нацело и взятия остатка, вроде как, реализуемы (вроде как -- потому что пока этого еще не записал четко, но знаю, что это можно; меня интересует идея).
Мой вопрос в другом -- я, "не чувствуя" пока ЧРФ, не могу понять, за что зацепиться, как организовать этот самый цикл, в котором рекурсия ведется не по одной переменной, а сразу по трем (исходное число, число-результат и степень десятки, на которую надо домножать при "дописывании" к число-рузультату очередной цифры).
P.S. Задача нужна не мне, мне как раз надо попытаться объяснить её другому человеку, поэтому прошу наводок, а не решений.
Спасибо!