n! = 123*…*n
首先分析质因数2的个数
参考文献:https://www.cnblogs.com/daifei/p/3766015.html
算法:N!质因数2的个数 = [N / 2] + [N / 4] + [N / 8] + …
推理:
- 将1.2.3…n的n个数以 2 1 2^1 21的间距从1 开始划分。则在第一条数轴上的每一个能够整除 2 1 2^1 21的点都至少有一个质因数2.则n!的质因数计数中,数轴上的每一个能够整除 2 1 2^1 21的点都计数1,数轴上总的点数为 [n/2],即n整除以2,向下取整。
- 将1.2.3…n的n个数以 2 1 2^1 21的间距从1 开始划分。
则在第一条数轴上的每一个能够整除 2 2 2^2 22的点都至少有一个质因数2.则n!的质因数计数中,数轴上的每一个能够整除 2 2 2^2 22的点都计数1,数轴上总的点数为 [n/ 2 2 2^2 2