快速计算n!中素因子的个数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42557561/article/details/100014440

Learning
我们来一个样例说明一下:

1 2 3 4 5 6 7 8 我们求得在8!中2的个数
 1 1  1   首先我们先计算出2的倍数的个数:8/2=4
   1  1   其次我们计算出4的倍数的个数: 8/4=2
      1   最后我们解出第三层的2的个数: 8/8=1

我们把4+2+1=7,所以一共7个2出现了。

即:
c n t ( x ) = [ n / ( x 1 ) ] + [ n / ( x 2 ) ] + [ n / ( x 3 ) ] + . . . cnt(x)=[n/(x^1)]+[n/(x^2)]+[n/(x^3)]+... (直到x的次方大于n)
到这里我们可以发现:我们平时求的方法是一列一列求的(就是每一个数算一遍),而这个方法我们每一行每一行的求,虽然效果一样,但求起来速度很快。值得学习。

猜你喜欢

转载自blog.csdn.net/weixin_42557561/article/details/100014440