DDCC2016 予選 C ロト2
問題概要
個の整数があり、 番目の整数は である。
が の倍数となるような と の組み合わせ が何通りあるか求めよ。
制約
解法
積が の倍数になればいいのだから、 それぞれの において必要な情報は、 の約数のうちどれが含まれているか。
よって、それぞれの について、 を求める。
あとはそれらを2つかけて の倍数にできるかを判定して数え上げればいい。
ってことまで自力で思いついて、具体的な方法が思い浮かばなかった。ので解説を見た。
だから、 の約数の個数は高々1500個くらいらしい。よって、連想配列か何かに を記録していって、2重ループで全探索すれば良い。
連想配列は滅多に使わないので、範囲forというものを初めて知った。
範囲for文 - cpprefjp C++日本語リファレンス