找出第N个最小素因子是P的正整数。
Input
一行两个整数N和P(1<=N,P<=10^9),保证P是素数。
Output
如果结果超过10^9则输出0否则输出这个数。
一看到最小质因子就想到了线筛,每个数只会被其最小质因子筛去。并且只需要筛出p以内的质数。再用p以内的质数去筛,比p小的质数可以筛去不合法的,比p大的质数对我们来说毫无意义。
然而p十分小时,线筛是跑不出来的。
怎么办?
容斥,把p以内的质数搞出来,比如说是
a1,a2,a3...
(不包括p)
那么二分答案
Ans
Cnt=ΣAns(P∗aiajak....Jud(Thenumberofa[])),Jud(k)=(kmod2==0?1:−1)
根据Cnt值调整Ans