FHC round1 10. Homework

問題

整数Xを素因数分解したときの素因数の種類数をw(X)とする。
整数A〜Bのなかで、w(X)=Kとなる整数の数がいくつかるか?

2<=A<=B<=10^7
1<=K<=10^9

考え方

2が素因数として含まれる=2の倍数
3が素因数として含まれる=3の倍数
5が素因数として含まれる=5の倍数
・・・
であるので、配列memoを用意して、0で初期化。
memo[2の倍数]++、memo[3の倍数]++のように10^7を超えない素数の倍数のところをインクリメントすることで、w(X)を求めておける。
あとは、A,Bが与えられたらループを回して確認する。