首页 > 其他 > 详细

计算n!中包含的质因子p的个数

时间:2021-05-11 21:54:31      阅读:23      评论:0      收藏:0      [点我收藏+]

有公式:

\(num = \lfloor \frac{x}{p} \rfloor + \lfloor \frac{x}{p^2} \rfloor + \lfloor \frac{x}{p^3} \rfloor + ....\)
\(\lfloor \frac{x}{p^k} \rfloor\)相当于1到n中\(p^k\)的倍数的个数。公式中只累加一遍是因为\(p^{k-1}\)这些已经在上一次被加过了。比如求8!中2的个数,1到8中2的倍数有2,4,6,8 = 8 / 2 = 4个,他们共有4个2;\(2^2 = 4\)的倍数有4,8 = 8 / 4 = 2个,相当于贡献了2个4 == 4个2,但上一轮4和8各贡献了一个2,因此本轮只算贡献了2个2(本轮算出来几个数就算贡献了几个p)。
代码:

LL cal(LL n,LL x){//计算 n! 中质因子 x 的数量
    LL num = 0;
    while(n){
        num += n/x;
        n = n/x;
    }
    return num;
}

计算n!中包含的质因子p的个数

原文:https://www.cnblogs.com/lipoicyclic/p/14757045.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!