一、用辗转相除法求最大公因数
辗转相除:
假如需要求 1997 和 615 两个正整数的最大公约数,进行过程如下:
1997 / 615 = 3 (余152)
615 / 152 = 4(余7)
152 / 7 = 21(余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 / 1 = 2 (余0)
至此,最大公约数为1,以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。
二、求最小公倍数
假设a,b两个数的最大公约数为m,则最小公倍数n=a*b/m
例如24和36,用辗转相除法得到最大公约数为12。再通过公式24*36/12得到最小公倍数为72。
三、c语言代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//辗转相除法求两个数的最大公约数
int MaxDevisor(int max,int min) {
int temp;
while (min != 0) {
temp = min;
min = max % min;
max = temp;
}
return max;
}
//求最小公倍数
int MinMultiple(int a, int b) {
return a*b/MaxDevisor(a, b);
}
int main(void) {
printf("%d",MinMultiple(24,36));
return 0;
}