19.求两个正整数的最大公约数和最小公倍数
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 }