https://atcoder.jp/contests/abc150/submissions/15845505
- 偶数 は にする
- 小数を整数にする →
- を素因数分解したとき因数2の個数が全て等しい必要がある
- のlcmだが、偶数倍はカウントしないので答えは約半分の個数になる
青difなので数学的センス必須。まず、小数は扱いづらいので2倍して整数にする。全てのがXになることからを素因数分解したとき(またはを素因数分解したとき)2の因数の個数が等しい必要がある。
[1,M]に存在するのlcmの公倍数の個数が答えだが、偶数倍はカウントしないため正確には半分くらいの値を出力する。このとき、単純に2で割っても1少ない個数が出力される場合があり、(long long)ceil((double)M / (double)lcm / 2.0)を出力するのが正しい。