最大公约数与最小公倍数

请问各位哪有问题orz

img

根本不需要循环啊,a和b的最小公倍数就是 a * b/最大公约数啊,比如这里a,b分别为6,9,最大公约数为3,那么最小公倍数就是6*9/3=18

int main()
{
  int m,n,a,b,s,r;
  cin>>m>>n;
  s = m*n;
  a = max(m,n);
  b = min(m,n);
  while(a%b != 0)
  {
        r = a%b;
        a = b;
        b = r;
  }
  cout<<"最大公约数为"<<b<<endl;
  cout<<"最大公倍数为“<<s/b<<endl;
  return 0;
}

因为小于等于a得数模a都为0
你应该从a和b中较大的一个开始遍历,或者直接用(a*b)/(最大公约数)来算
有帮助望采纳~