\(b_i = a_i / 2\) とすると, \(a_i\) の半倍数は \(b_i\) の奇数倍の数である.

よって, 半公倍数は \(b_i\) の公倍数の一部であるので, まずは \(b_i\) の最小公倍数 \(L\) を求める. \(L \gt M\) ならば求める半公倍数の数は \(0\) 個である.

次に \(L/bi\) が偶数ならば \(L\) の倍数は \(b_i\) の偶数倍となるので, やはり半公倍数は存在しない.

あとは \(L\) の奇数倍の個数を数える. これは \(L\) の倍数の数から \(L\) の偶数倍の数を引いたものなので, \(\floor{M/L} - \floor{M/2L}\) となる.