問題概要
個の異なる整数
と整数
が与えられる。
以上
以下のそれぞれの整数
について、
のうち
と互いに素であるものの個数を求めよ。
制約
解法
ある数 について、
のうち
と互いに素であるものの個数を求めるとき、愚直に1つずつ試して
でやると全体で
となりTLEする。
よって、互いに素であるものをまとめて計算することを考える。
6と互いに素なものは2の倍数でも3の倍数でもないものであるということを考えると、 と互いに素であるものは、
の約数の倍数を全体から引いたものであると考えられる。
前計算として、
f[ ] :=
のうち
の倍数であるものの個数
を求めてあげることで、包除原理を使って と互いに素であるものの個数は高速に求めることができる。