zoukankan      html  css  js  c++  java
  • 51nod1189 阶乘分数

    1/N! = 1/X + 1/Y(0<x<=y),给出N,求满足条件的整数解的数量。例如:N = 2,1/2 = 1/3 + 1/6,1/2 = 1/4 + 1/4。由于数量可能很大,输出Mod 10^9 + 7。
    Input
    输入一个数N(1 <= N <= 1000000)。
    Output
    输出解的数量Mod $10^9 + 7$。
    Input示例
    2
    Output示例
    2

    这道题花了我一小时的时间。

    主要原因是。。。我和题解推出来式子不太一样,然后我为了证明这两个式子是相等的,用了很长时间。

    我比较瓜,先放我贼不优秀的式子:

    $$frac{1}{N!} = frac{1}{x} + frac{1}{y}$$

    $$N! = frac{x imes y}{x+y}$$

    $$y = frac{N! imes x}{x - N!}$$

    令$t = N! , x = frac{b}{a} imes N!    (gcd(a,b)==1)$

    $$y = frac{frac{b}{a} imes t^2}{frac{b-a}{a} imes t}$$

    $$y = frac{b imes t}{b-a}$$

    因为x、y都是整数,a、b互质,所以$(c=b-a) | t$、$a | t$

    那么$ans imes 2 - 1=sumlimits_{a|t} sumlimits_{c|t} [gcd(a,c)==1]$

    然后发现网上题解都是这样子做的,比我的优秀多了:

    $$x imes y = N! imes (x+y)$$

    $$x imes y - N! imes (x+y) + (N!)^2= (N!)^2$$

    $$(x-N!) imes (y-N!) = (N!)^2$$

    那么$ans imes 2 - 1 = sumlimits_{a|t^2} 1$

    于是我很想证明的就是

    $$sumlimits_{x|t^2} 1= sumlimits_{a|t}sum limits_{c|t} [gcd(a,c)=1]$$

    我瞪着这个式子看了半天,然后去问llj dalao。他告诉我去打个表。

    我打表发现式子是成立的。

    然后怎么证明这个式子是成立的呢?

    我们设$t = p_1^{a_1} imes p_2^{a_2} imes p_3^{a_3} imes ........$

    对于第i个质数$p_i$

    对于$a|t$ && $c|t $&&$ [gcd(a,c)==1]$的$a$、$c$含有质因子$p_i$的个数的方案数有$2 imes a_i +1$种。

    对于$x|t^2$的$x$含有$p_i$的个数的方案数也有$2 imes a_i +1$种。

    所以说可以一一对应啦。

  • 相关阅读:
    gif&png&jpg&webp
    设计点滴&css效果点滴
    backbone点滴
    js自己总结的小东西(打印出来方便学习)
    nodejs点滴
    js类型
    mongo学亮的分享
    npm package.json中的dependencies和devDependencies的区别
    161130、Dubbo+SpringMVC工程创建详解
    161129、详解5种跨域方式及其原理
  • 原文地址:https://www.cnblogs.com/Serene-shixinyi/p/8099278.html
Copyright © 2011-2022 走看看