1. 程式人生 > >19.求兩個正整數的最大公約數和最小公倍數

19.求兩個正整數的最大公約數和最小公倍數

clas 個數 pan 最大數 不為 while != ret 除法

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {
 6    int m,n,r,t,p;
 7    scanf("%d,%d",&m,&n);
 8    if(m<n)  //把m置為最大數
 9    {
10        t = m;
11        m = n;
12        n = t;
13    }
14    p = m*n;
15    while(n!=0)
16    {
17        r = m%n;  //利用輾轉相除法,思想:給定兩個數,用較大的數除以較小的數,若余數不為零,則將余數和較小的數構成新的數對,
18 m = n; //繼續上面的除法,直到大數被小數除盡,則這時較小的數就是原來兩個數的最大公約數 19 n = r; 20 } 21 printf("最大公約數為: %d\n",m); 22 printf("最小公倍數為: %d",p/m); //最小公倍數=m*n/最大公約數 23 return 0; 24 }

19.求兩個正整數的最大公約數和最小公倍數