No.050 C

まずは の最大公約数を求める. これはユークリッドの互除法をシミュレートすると, 1を 個並べたものとなる. これを とすると, 最小公倍数は となる.

は素数に限定されていないので, 逆元は使えない.

そこで, を考えると, これは 00..01 と0を 個並べて最後に1を追加したものを 個並べたものとなる.

00..01 のように 個の0と1個の1を並べたものを 個並べた数を とすると,

のように計算できるので, これで のスケールで計算できるようになる.