竞赛
考级
注意到一个数末尾 000 的个数就是它 101010 因子的个数,将 101010 分解质因数,得 10=2×510=2\times 510=2×5,因子 222 很多,不需要考虑,只需要考虑 1,2,…,n1,2,\dots,n1,2,…,n 中因子 555 的个数。 所以我们预处理一个数因子 555 的个数,再求前缀和,就能得到 1,2,…,n1,2,\dots,n1,2,…,n 中因子 555 的个数。 然后二分就能求出所有满足条件的数。
AAA混凝土批发ppl哥
题目大意 给定一个正整数 mmm,请你统计一共有多少个正整数 nnn 满足,nnn 的阶乘的末尾连续 000 的数量恰好为 mmm。 输出满足条件的 nnn 的数量以及所有满足条件的 nnn。 题意分析 要求的是正整数 nnn 的阶乘连续末尾的 000 个数,实则为计算阶乘中的数字拆分之后能凑出多少乘 101010。 解题思路 注意到 10=5∗210=5*210=5∗2,所以我们只需要对每个数字进行分解,计算出每个数字包含的 2,52,52,5 的个数。 2,52, 52,5 中个数少的数就是当前个数后缀 000 的个数。 由于是阶乘,n!n!n! 中 222 的个数等于 n−1!n-1!n−1! 中 222 的个数加上 n−1n-1n−1 分解出来的 222 的个数。555 的个数同理。 时间复杂度解析 本题时间复杂度为 O(k⋅logk)O(k \cdot logk)O(k⋅logk),kkk 为程序找到的最大 iii 的值。 代码演示
得去搞点吃的
提交答案之后,这里将显示提交结果~