为什么要写这样一篇博文呢?
因为在知乎上看到了一个问题感觉思想有用?
2016 的阶乘(2016!)末尾第一个非零数字是几?
传送门:https://www.zhihu.com/question/47569759
不妨令2016!末尾有k个零,
因为2016!因子里2肯定比5多,所以
来数2016!因子5的个数
Notes:
考虑以前做过的一道题,k的阶乘的末尾有几个0,我们知道因子里2肯定比5多,所以看因子5的数量,我们的做法是用k去除5,25,125…这里就是一样的道理啦。
因此
Notes:
这是为什么呢?左边是2016!/5^k,右边是2016!除去所有5以后的余数,因为是mod 5的,所以只有4中因子的可能,比如1 mod 5=1,2 mod 5=2,3 mod 5=3,4 mod 5=4,6 mod 5=1,是一直循环的,所以这里求了一下周期(减去有5因子的数后),其实我觉得可以直接找周期不这样做。
有
所以,
又有
于是 (利用周期)
用中国剩余定理求出
Notes:
结合之前的n≡0(mod 2),由中国剩余定理,k=(4×2×inv(2,5)+0×5×inv(5,2))%(2×5)=4。
还看到了一个让我有启发的回答:
- 小于2016的质数表
- 将2016!表示成质数表的指数积
- 消掉2,5
- 计算剩余质数指数积的尾数
提示:每个数都表示成质数字典
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!