cf83d

此题算是很容易想的。

题意就是给定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素数判定,但是貌似我看有人暴力判断素数比我的快得多。。。。我晕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值