No.050 C 問題 コード まずは の最大公約数を求める. これはユークリッドの互除法をシミュレートすると, 1を 個並べたものとなる. これを とすると, 最小公倍数は となる. は素数に限定されていないので, 逆元は使えない. そこで, を考えると, これは 00..01 と0を 個並べて最後に1を追加したものを 個並べたものとなる. 00..01 のように 個の0と1個の1を並べたものを 個並べた数を とすると, のように計算できるので, これで のスケールで計算できるようになる.