1.求最小公倍数
利用两个数都可以被其整除的性质:最小公倍数可以从a的倍数和b的倍数中寻找,我们从大的数的倍数中寻找效率较高。
2.求最大公约数
1.穷举法
两个数的最大公约数必然是小于等于最小的数的,故从最小的数开始每次1开始寻找能同时整除两个数的,找到为止,即为最大公约数。
2.相减法
利用如下性质:
3.欧几里得辗转相除法
完整的代码如下:
#include<stdio.h>
/*-----最小公倍数,最大公约数-----*/
/*求最小公倍数,利用两个数都可以被其整除的性质
最小公倍数可以从a的倍数和b的倍数中寻找,
我们从大的数的倍数中寻找效率较高
*/
int MinCommonMultiple(int a,int b){
int mcm,temp;
if(a>b){//使a<b
temp=a;
a=b;
b=temp;
}
mcm=b;//msm为最大的数
while(mcm%a!=0){
mcm+=b;//msm%b==0必成立
}
return mcm;
}
/*函数功能:使用穷举法,求最大公约数:
利用两个数都可以整除公约数的性质
*/
int MaxCommonFactor(int a,int b) {
int temp,mcf;
if(a>b){//使a<b
temp=a;
a=b;
b=temp;
}