我们来一个样例说明一下:
1 2 3 4 5 6 7 8 我们求得在8!中2的个数
1 1 1 1 首先我们先计算出2的倍数的个数:8/2=4
1 1 其次我们计算出4的倍数的个数: 8/4=2(上面一个式子求出了第一层,现在求第二层)
1 最后我们解出第三层的2的个数: 8/8=1
我们把4+2+1=7,所以一共7个2出现了。
即:
到这里我们可以发现:我们平时求的方法是一列一列求的(就是每一个数算一遍),而这个方法我们每一行每一行的求,虽然效果一样,但求起来速度很快。值得学习。
故做法:
1.先把素数表打好
2.for循环把小于n的每个质数进行一次运算,用数组记录
3.结束
非常快。
原文:https://blog.csdn.net/qq_40679299/article/details/80586638