python——蓝桥杯——2023年第十四届省赛真题-阶乘的和

题目描述

给定 n 个数 Ai,问能满足 m! 为∑ni=1(Ai!) 的因数的最大的 m 是多少。其中 m! 表示 m 的阶乘,即 1 × 2 × 3 × · · · × m。

输入格式

输入的第一行包含一个整数 n 。

第二行包含 n 个整数,分别表示 Ai,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

样例输入

3
2 2 2

该类型题不建议使用暴搜(会超时,如果想不到怎么解,暴搜时可以进行剪枝操作(混分))

用defaultdict构建字典存储Ai出现次数。

当每个Ai独自出现各不相同时,result=min(Ai)

else:对Ai出现次数进行累计,如果满足count%(Ai+1)==0,则对Ai+1出现次数进行重新赋值,依次类推。(Ai要先进性排序)

## 阶乘的和
from collections import defaultdict
n=int(input())
nums=list(map(int,input().strip().split()))
nums.sort()
lst=defaultdict(int)
for i in nums:
    lst[i]+=1
result=min(nums)
while True:
    if lst[result]%(result+1)==0:
        lst[result+1]+=lst[result]//(result+1)
        result+=1
    else:
        break
print(result)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值