【NOIP2013模拟联考3】恭介的法则(rule)

题目

https://jzoj.net/senior/#contest/show/2100/1

小结

这道题有点难,刘犇比赛竟然A了!太6了。
这是一道数论题。
本质上就是求 1x+1y=1n!
我们把它变成: x+yxy=1n!
然后都取倒数,变成 xyx+y=n!
把“x+y”移过去:变成 xy=n!(x+y)
乘进去:变成 xy=n!x+n!y
移项: xyn!x=n!y
=> x(yn!)=n!y ;
然后再除过去: x=n!yyn! ;
∵x是整数

① yn!|y-n!
②y>n!
于是我们假设y=n!+k;
那么式子就变成了: n!(n!+k)(n!+k)n!
=> (n!)2+n!kk
因为k肯定整除n!k,
所以矛头就指向了 (n!)2
∴要使等式成立, k|(n!)2
所以我们知道k一定是 (n!)2 的一个因子。
所以,题目转化为了求n!的因子个数。
我们知道x的因子个数=(q1+1)(q2+1)(q3+1)(qn+1)
qi是x分解质因数的每个质因数的指数。
怎么证呢?
很简单,因为每个质因数可以取0次,可以取1次….可以取qi次,所以总方案数就是全部乘起来,加1是因为算上0的情况。
我们就只需要找一到n之内所有数的质因子出现的次数,然后每个依次*2(因为是平方),再用高精度乘一乘,就好啦。(PS:当然还有一些常数优化)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值