AtCoder Beginner Contest 161 F - Division or Substraction
解法
「 が で割り切れる時」「割り切れない時」で操作の種類が変わるので、 を で割った余りに注目してみましょう。
もし を で割った余りが でない場合には、 は 未満になるまで に置き換えられ続けます。つまり、この余りはずっと変わりません。よって を割り切れないような のうち条件を満たすものは、その余りが であるもの全てです。
このような の個数を求めましょう。余りが であるということは正整数 を用いて と表現できるということです( なので はあり得ません)。これを変形して となり、このような正整数 が存在する は の約数なので、その個数を数えれば良いです。ただし は除きます。
一方 が で割り切れる時には、割り切れなくなるまで で割られ、その後は上記と同じ流れになります。よって の約数( を除く)であるような を全て試し、 を割り切れなくなるまで割ってから、さらに割ろうとした時の余りが であるかを調べれば良いです。約数は多く見積もっても 個以下(実際はもっと少ないです)なので、全て調べても間に合います。
両方の の個数を合計することで答えを求めることができます。