利用for循环找最小公倍数

本人c++究极萌新,看到一个利用for循环求最小公倍数的代码。代码正确,但是有一行我不是很理解,希望有大神可以帮助我解惑😭

 

我的问题是,假如我的n1和n2是2和5。k=2进入循环,当k=6的时候,不就跳出循环了吗?为什么还能继续执行,找到我要的数呢

这个for循环求的是最大公约数,不是最小公倍数

如果当k到6跳出循环时都没有满足 if(m%k==0 && n%k==0) 条件对gcd 重新赋值。最大公约数就是gcd的初始值 1