1. 程式人生 > >一種很撈的求最大公約數和最小公倍數的方法

一種很撈的求最大公約數和最小公倍數的方法

void main()
{
  int m, n, c, r, t, x;
  printf("請輸入兩個整數\n");        //輾轉相除法
  scanf_s("%d,%d",&m,&n);
  x = m * n;                 //用來存放m*n,後面求最小公倍數會用到
  if (m < n)
  {
    t = m; m = n; n = t;
  }                  //讓m為最大的整數

  while (1)
  {
    r = m % n;
    c = (m - r) / n;

    if (r != 0)

    {
      m = n;
      n = r;              //c為商,r為餘數,
    }                  //當r不為0的時候,繼續運算
    else
      break;
  }
    x /= n; //x為最小公倍數
    printf("最大公約數為%d\n", n);
    printf("最小公倍數%d\n", x);
  }