1. 程式人生 > >C語言計算兩個正整數的最大公約數與最大公倍數

C語言計算兩個正整數的最大公約數與最大公倍數

先給出原始碼,下面解釋。

<span style="background-color: rgb(255, 255, 255);"><span style="font-size:18px;color:#ff0000;">#include <stdio.h>
void main()
{
  int a,b,c,d;  //定義四個變數
  scanf("%d,%d",&a,&b);
  d=a*b;  //求出兩個正整數的乘積
  while (b!=0)
      {
        c=a%b;//重點是這裡 ,很多人看不懂,再往下面看
        a=b;
        b=c;
      }
  printf("最大公約數為%d,最大公倍數為%d\n",a,(d/a));
}</span></span>

最小公倍數的求法:a*b/最大公約數

所以我們求出最大公約數讓d來除就好了。

最簡單的是用輾轉相除法,在西方稱為歐幾里德演算法。不知道的百度一下。給出連線。

簡單的說:從第一次開始計算a%b,得出餘數c。第二次把除數b賦值給a,讓原來的除數去做被除數,把餘數做除數。如果有最大公約數 ,最後的除數就是最大公約數。求出最大公約數,用兩個整數的乘積除以最大公約數,得出最小公倍數。