【数学推理】蓝桥杯第十四届---阶乘的和

题目描述

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

输入格式

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

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

输出格式

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

样例输入

复制代码
3
2 2 2

样例输出

复制代码
3

提示

对于 40% 的评测用例,n ≤ 5000 ;

对于所有评测用例,1 ≤ n ≤ 10^5 1 ≤ Ai ≤ 10^9 。


(a!+b!+c!)(a<b<c) ,假设 b!是(a!+b!+c!)的最大因数那么一定是个小数(因为一定是一个小数,一定是整数),所以(a!+b!+c!)的最大因数一定是a!,如果有(a+1)个a!,那么 a!+a!+...+a!=(a+1)*a!=(a+1)! ,(如样例中的 2!+2!+2!=3*2!=3! )。


cpp 复制代码
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
#define int long long
const int N=1e5+10;
unordered_map<int,int> mp;
signed main(){
	int n;
	cin>>n;
	int minv=1e9+10;
	for(int i=1;i<=n;i++){
		int x;cin>>x;
		mp[x]++;
		minv=min(minv,x);
	}
	while(mp.count(minv)){
		int t=mp[minv]/(minv+1);
		int k=mp[minv]%(minv+1);
		if(k!=0) break;
		mp[minv+1]+=t;
		minv++;
	}
	cout<<minv<<endl;
	return 0;
}
相关推荐
花开富贵ii14 分钟前
代码随想录算法训练营四十九天|图论part07
java·数据结构·算法·图论·prim·kruscal
天才测试猿29 分钟前
测试用例如何评审?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
CoovallyAIHub33 分钟前
无需ReID网络!FastTracker凭借几何与场景认知实现多目标跟踪新SOTA,助力智慧交通更轻更快
深度学习·算法·计算机视觉
CoovallyAIHub1 小时前
D‘RespNeT无人机图像分割数据集与YOLOv8-DRN模型,实时识别入口与障碍,助力灾后救援
深度学习·算法·计算机视觉
静若繁花_jingjing1 小时前
面试之JVM
面试·职场和发展
小白程序员成长日记1 小时前
8.26学习日志
学习·算法·leetcode
汤永红2 小时前
week5-[字符数组]查找
c++·算法·信睡奥赛
林内克思2 小时前
inline内联函数
java·开发语言·算法
源代码•宸2 小时前
Leetcode—1163. 按字典序排在最后的子串【困难】
经验分享·算法·leetcode·双指针
GIS小天9 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年8月25日第170弹
人工智能·算法·机器学习·彩票