精品理论电影在线_日韩视频一区二区_一本色道精品久久一区二区三区_香蕉综合视频

輾轉相除法求最大公約數和最小公倍數

發布時間:2011-09-16 共1頁

  1: /*輾轉相除法基于如下原理:兩個整數的最大公約數等于其中較小的數和兩數的差的最大公約數。

  2: 例如,252和105的最大公約數是21(252 = 21 × 12;105 = 21 × 5);

  3: 因為252 ? 105 = 147,所以147和105的最大公約數也是21。在這個過程中,較大的數縮

  4: 小了,所以繼續進行同樣的計算可以不斷縮小這兩個數直至其中一個變成零。這時,所剩下的

  5: 還沒有變成零的數就是兩數的最大公約數。

  6: */

  7: #include <stdio.h>

  8:

  9: int getGCDAndLCM(int a,int b){

  10:     int max=a>b?a:b;//將較大的數賦給max

  11:     int min=(max=a)?b:a;//將較小的數賦給min

  12:     int temp;//暫時存儲變量

  13:     while(max!=0){

  14:         temp=min%max;

  15:         min=max;

  16:         max=temp;

  17:     }

  18:     printf("最大公約數為%d\n",min);

  19:     printf("最小公倍數為%d\n",a*b/min);

  20: }

  21:

  22: int main(){

  23:     printf("輸入兩個數整數值\n");

  24:     int a,b;

  25:     scanf("%d",&a);

  26:     scanf("%d",&b);

  27:     getGCDAndLCM(a,b);

  28:     return 0;

  29: }

百分百考試網 考試寶典

立即免費試用