https://jzoj.net/senior/#main/show/3456
想法:
要求找满足1/x+1/y=1/n!的对数(x,y)
即要求(x+y)/(x*y)=1/n!的对数
xy/(x+y)=n!
xy=n!(x+y)
考虑通过x求y
xy=n!x+n!y
-n!x=n!y-xy
n!x=xy-n!y
n!x=(x-n!)y
n!x/(x-n!)=y
都要为正整数
于是要求x-n!|n!x
设k=x-n!
k|n!(n!+k)
k|n!n!+kn!
k|n!n!
答案变成求n!n!得约数个数
如果一个数=(p1^q1)*(p2^q2)……..(pz^qz)
约数个数=(q1+1)(q2+1)(q3+1)(q4+1)
(n!)^2=(1^2)(2^2)(3^2)….(n^2)
求出n的每个质因数的指数,那么指数*2就求出了n!的每个质因数指数,
然后线性即可求出每个数的质因子(线性筛法时记录每个数被筛的最小质因子,递归跳)
高精度压位+常数优化
JZOJ3456. 【NOIP2013模拟联考3】恭介的法则(rule)(2017.8B组)
最新推荐文章于 2018-07-19 22:02:43 发布