此题算是很容易想的。
题意就是给定ab区间,然后给定一个k求k在区间中以最小因子出现的次数。
那么此题很容易想到的就是,我们求出1到b的答案与1到a-1的答案然后两者相减就可以了,对于一个数其因子是p1^k1 * p2^k2 * p3^k3....pn^kn 那么对于一个k是最小因子,那么必定是素数,不然可以被其本身的因子整除。然后我们就想这个区间中有多少个这样的数,对于1到n这个区间中以k为因子的个数是n/k个,那么假定其是素数pk,那么我们要找的是剔除p1到p(k-1)中的素数组成的数,那么就从当前数中除去pk然后在其前面的p1-p(k-1)个素数中搜,那么其因子必然是(2-k-1)由于此题a,b较大,那么每次重新搜对于a,b的素数p1-p(k-1)规模有点大,那么其实就像刚才说的,其实我们提出pk以后必然存在p1——pk的存在性,所以只需要每次探访都可以出去pk从而降低复杂性。
一开始我看测试数据比较大用miller_rabin素数判定,但是貌似我看有人暴力判断素数比我的快得多。。。。我晕