题目描述
给定 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)