求n!中素因子的幂
看到一个好用滴公式:
求n的阶乘中某素数p的幂的大小,设为x:
x=[ n/p ] + [ n/( p^2 ) ] + [ n/( p^3 ) ]+[ n/( p^4 ) ]+.....
(直到分母大于分子的值,此时该式=0)
对应的题目如下:
题目:
n!后面有多少个0
题意:
从输入中读取一个数n,求出 n!中末尾0的个数。
样例输入:
3 3 100 1024
样例输出:
0 24 253
求解思路:
对于任意一个正整数 若对其进行因式分解 那么其末尾的0必可以分解为2*5
在这里 每一个0 必然和一个因子5相对应
但 一个数的因式分解中因子5不一定对应着一个0 因为还需要一个因子2
而对于n! 在因式分解中 2的因子个数要大于5的因子个数
所以这题只要求出5的幂就可以了
代码实现:
个人感觉直接用公式就行了呀,循环 ,直到 5的某次方 大于n的值。