Поскольку тут Сергей уже почти разобрал и не надо общего алгоритма деления, а нужен остаток - то вот рассуждения.
Остаток от деления суммы равен сумме остатков от деления каждого члена суммы. Если эта сумма превосходит делитель, то продолжаем.
Итак,
x%10 = (250*u)%10 + (6*u)%10 + i%10
Остаток первого члена равен R1=0, его не учитываем.
Остаток от второго члена будет R2=6*(u%10)=6*r2.
Остаток от третьего члена R3=I%10.
Итого, R=6*r2+R3. Получили, что два деления 8-и битных, одно умножение - 8 битное, одно сложение. Если R>10, то рекурсивно.
Если охота потрахаться дальше с арифметикой остатков, то можно заметить, что у произведения 6*u периодичность остатков такая
6*0 - 0
6*1 - 6
6*2 - 2
6*3 - 8
6*4 - 4
6*5 - 0
6*6 - 6
6*7 - 2
6*8 - 8
6*9 - 4
...
Это и есть период - 0, 6, 2, 8, 4 - его можно зашить в массив от 0 до 9 - для скорости или честно делить (или даже от 0 до 4 - по длине периода). Очевидно, что, если мы выбираем из массива число не большее 8 и к нему добавляем число не большее 9 от R3, то сумма не превзойдет 17, поэтому рекурсию можно заменить на сравнение.
Пусть u=13, i=87
6*(13%10)+87%10=6*3+7=25 - 25%10=5. Если следовать рекурсивному варианту.
R[13%10]+87%10 = R[3]+7=15 15-10=5 - Если с проверкой и массивом.
Массив против деления и умножения. Тут надо считать такты. Скажем, на Искре 226, где деление и умножения не было, вариант с массивами был предпочтительнее, чем вызов подпрограммы деления/умножения.