最大公约数和最小公倍数
对两个数:a b,求这两个数的最大公倍数与最小公约数
-
辗转相除
对于这两个数,首先用较大者a除以较小者b得出的商n跟余数r,若余数r为零,则n为这两个的最大公约数,最小公倍数为两个数相乘再除以最大公约数。若余数不为零,则令较大数a等于较小数b,重复以上步骤直到余数r为零。
a(60) b(24) t1=a%b,a=b,b=t1,t1!=0 24 12 t1=a%b,a=b,b=t1,t1==0 所以以上的最大公约数:12 最小公倍数120
#include <stdio.h> int main() { int m,n,t1; int max, min; scanf("%d %d", &m, &n); max=m>n?m:n; min=m>n?n:m; t1=max%min; while(t1) { max=min; min=t1; t1=max%min; } printf("最小公倍数: %d, 最大公约数: %d\n", m*n/min,min); return 0; }
如果有错误马上修改