求最大公因子用的是欧几里得算法,给定a,b(a>b,b0),求解方程为:
(r为a,b的余数)
.
.
最后的式子的余数为0时,其中的 就是a和b的最大公因子。
例如a=49,b=35;
49=35*1+14
35=14*2+7
14=7*2
所以a,b最大公因子为7
C程序如下
#include<stdio.h>
int main(){
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d,%d",&n,&m);
if(n<m){ //保持a>b
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0){ //欧几里得算法
r=n%m;
n=m;
m=r;
}
printf("他们的最大公约数为:%d\n",n);
printf("他们的最小公倍数为:%d\n",p/n);
return 0;
}
结果: