任何一个整数都可以写成质因数成绩的形式:
10 = 2 * 5
21 = 3 * 7
23 = 1 * 23
。。。
所以n! = 2^n1 * 3^n2 * 5^n3 *.....
其中有可能在最后产生0的,只有2 和 5相乘了,因为n1 远大于 n3,所以n3的大小就是n!最后0的个数
求n3的方法:
int ret = 0;
while (N > 0)
{
ret += N / 5;
N /= 5;
}
return ret;
任何一个整数都可以写成质因数成绩的形式:
10 = 2 * 5
21 = 3 * 7
23 = 1 * 23
。。。
所以n! = 2^n1 * 3^n2 * 5^n3 *.....
其中有可能在最后产生0的,只有2 和 5相乘了,因为n1 远大于 n3,所以n3的大小就是n!最后0的个数
求n3的方法:
int ret = 0;
while (N > 0)
{
ret += N / 5;
N /= 5;
}
return ret;