设答案为$g$,那么肯定有$gmid M$。
再设$M=sumlimits_{i=1}^N a_i=g imes sumlimits_{i=1}^N t_i$。
因为$t_i$都是正整数,所以$sumlimits_{i=1}^n t_i ge N$,所以$dfrac{M}{g}ge N$,也即$gle dfrac{M}{N}$。
于是答案就是在$[1,dfrac{M}{N}]$中,能整除$M$的最大值。
从大到小枚举即可。
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define IL inline #define RG register using namespace std; #define RI RG int int n,m; int main(){ scanf("%d%d",&n,&m); for(RI i=m/n;i>=1;i--) if(m%i==0){ printf("%d",i); break; } return 0; }