确定最小的正整数n,使得n!的结尾恰好有1987个0

求解末位有1987个0的最小n!
本文介绍了一种数学方法,用于确定最小的正整数n,使得n!的结尾恰好有1987个0。通过分析5的幂次在阶乘中的出现频率,逐步逼近并找到目标数值。

题目:确定最小的正整数n,使得n!的结尾恰好有1987个0。


分析:我们首先来认识一个结论

    设进制表示下各位数字之和,那么中素数的幂的指数为 



那么现在来证明这个结论:

    设进制表示为,那么

中素数的指数为


   


这样,题目就有了思路。我们知道末尾0的个数取决于中素数5的幂指数。也就是说确定一个数,使得中5的幂指数为1987。即

                                                         


那么,对于来说不会很大。我们先来估计求一下,计算,那么得到


,很明显7948不够大,那么我们可以从7948开始往上枚举,直到计算出为止,最终得到



用C++分析和解决此题 【题目描述】 在玩惯了成语接龙之后,小 J 和他的朋友们发明了一个新的接龙规则。 总共有 n 个人参与这个接龙游戏,第i 个人会获得一个整数序列 S【i】 作为他的词库。一次游戏分为若干轮,每一轮规则如下: • n 个人中的某个人 p 带着他的词库 S【p】 进行接龙。 若这不是游戏的第一轮,那么这一轮进行接龙的人不能与上一轮相同,但可以与上上轮或更往前的轮相同。 • 接龙的人选择一个长度在 [2, k] 的 S【p】的连续子序列 A 作为这一轮的接龙序列,其中 k 是给定的常数。 若这是游戏的第一轮,那么 A 需要以元素 1 开头,否则A 需要以上一轮的接龙序列的最后一个元素开头。 – 序列 A 是序列 S 的连续子序列当且仅当可以通过删除 S 的开头和结尾的若干元素(可以不删除)得到 A。 为了强调合作,小 J 给了 n 个参与游戏的人 q 个任务,第 j 个任务需要这 n 个人进行一次游戏, 在这次游戏里进行恰好 r【j 】轮接龙,且最后一轮的接龙序列的最后一个元素恰好为 c【j】。 为了保证任务的可行性,小 J 来你判断这 q个任务是否可以完成的,即是否存在一个可能的游戏过程满足任务条件。 【输入】 本题有多组测试数据。 输入的第一行包含一个正整数 T,表示数据组数。 接下来包含 T 组数据,每组数据的格式如下: 第一行包含三个整数 n, k, q ,分别表示参与游戏的人数、接龙序列长度上限以及任务个数。 接下来 n 行: 第 i 行包含 (li+1) 个整数 li, S【i,1】, S【i,2】, · · · ,S【i,li】 ,其中第一个整数 l【i】 表示序列 S【i】 的长度,接下来 l【i】 个整数描述序列 S【i】。 接下来 q 行: 第 j 行包含两个整数 r【j】, c【j】,描述一个任务。 【输出】对于每个任务:输出一行包含一个整数,若任务可以完成输出 1,否则输出 0
05-03
【题目描述】 在玩惯了成语接龙之后,小 J 和他的朋友们发明了一个新的接龙规则。 总共有 n � 个人参与这个接龙游戏,第i � 个人会获得一个整数序列 Si � � 作为他的词库。一次游戏分为若干轮,每一轮规则如下: • n � 个人中的某个人 p � 带着他的词库 Sp � � 进行接龙。若这不是游戏的第一轮,那么这一轮进行接龙的人不能与上一轮相同,但可以与上上轮或更往前的轮相同。 • 接龙的人选择一个长度在 [2 2 , k � ] 的 Sp � � 的连续子序列 A � 作为这一轮的接龙序列,其中 k � 是给定的常数。若这是游戏的第一轮,那么 A � 需要以元素 1 1 开头,否则A � 需要以上一轮的接龙序列的最后一个元素开头。 – 序列 A � 是序列 S � 的连续子序列当且仅当可以通过删除 S � 的开头和结尾的若干元素(可以不删除)得到 A � 。 为了强调合作,小 J 给了 n � 个参与游戏的人 q � 个任务,第 j � 个任务需要这 n � 个人进行一次游戏,在这次游戏里进行恰好 rj � � 轮接龙,且最后一轮的接龙序列的最后一个元素恰好为 cj � � 。为了保证任务的可行性,小 J 来你判断这 q � 个任务是否可以完成的,即是否存在一个可能的游戏过程满足任务条件。 【输入】 本题有多组测试数据。 输入的第一行包含一个正整数 T � ,表示数据组数。 接下来包含 T � 组数据,每组数据的格式如下: 第一行包含三个整数 n � , k � , q � ,分别表示参与游戏的人数、接龙序列长度上限以及任务个数。 接下来 n � 行: 第 i � 行包含 (li+1 � � + 1 ) 个整数 li � � , Si,1 � � , 1 , Si,2 � � , 2 , · · · ,Si,li � � , � � ,其中第一个整数 li � � 表示序列 Si � � 的长度,接下来 li � � 个整数描述序列 Si � � 。 接下来 q � 行: 第 j � 行包含两个整数 rj � � , cj � � ,描述一个任务。 【输出】 对于每个任务:输出一行包含一个整数,若任务可以完成输出 1 1 ,否则输出 0 0
05-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值