题目是求最大公约数何最小公倍数的和,程序运行也没问题,但是提交了就显示超时,求解一下
老哥,你这写法太暴力了,m和n都是 $10^9$ 数量级的,你从头遍历一遍求最大公约数当然超时啊。
你可以百度一下辗转相除法求最大公约数。
最简单的减小时间复杂度的方法,数值范围缩小为m和n的倍数,扩增按照倍数扩增,即将数值空间按照x,y方向缩放
long fun(long n,long m) {
long s=m*n;
long r=m%n;
while(r>0){
m=n;
n=r;
r=m%n;
}
return s/n+n;
}