\(B\) を素因数分解したものを \(p_1^{q_1} p_2^{q_2} \cdots\) とする.

\(x\) を \(B\) 進数で表したときの末尾の \(0\) の数は, \(x\) が \(M B^k\) で表せるときの \(k\) である. \(x\) を \(M^{\prime} p_1^{r_1} p_2^{r_2} \cdots\) とすると, \(r_1 \geq kq_1, r_2 \geq kq_2, \dots\) がすべて成り立つとき, \(x\) は \(B^k\) で割り切れるので, 末尾の \(0\) の数は \(k\) となる.

\(T\) を \(B\) 進数で表したときの末尾の \(0\) の数をできるだけ減らすには, \(X_i\) から \(K\) 個選ぶときに \(r_i\) をできるだけ小さくなるようにすればいい. よって, \(X_i\) を \(M_i' p_1^{s_{i,1}} p_2^{s_{i,2}} \cdots\) と表したときに \(s_{i,j}\) が小さいものから \(K\) 個選ぶのが最適となる. これを \(B\) のすべての素因数について計算し, \(k\) が最も小さくなるような \(p_i\) を探し出す.