No.020 D
最初の部分点は最小公倍数を全探索で求めるのだろう.
2番目の部分点は, の最大公約数 をユークリッドの互除法で求め, 最小公倍数を で計算し, あとは を から までぶん回すのだろう.
しかし が大きいのでこの方法では満点は取れない.
まず, と が互いに素の場合は, である. このようになる の和 を求める.
に含まれる素因数をたとえば として, の倍数の集合を とすると, 包除原理を使って,
となる. に含まれる素因数の数は高々 個なので十分間に合う.
次に, となる の和を考える. これは とすると と が互いに素の場合になるので, 同様に計算できる.
以下はすべての ( の約数) について同様の計算を行う.