19.求兩個正整數的最大公約數和最小公倍數
阿新 • • 發佈:2019-02-10
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.求兩個正整數的最大公約數和最小公倍數