您的位置:首页 > 其它

辗转相除法求最大公约数和最小公倍数

2018-03-06 13:32 274 查看
求 a 和 b 的最大公约数
算法简介:将两个数a,b相除(a > b),如果余数c不等于0,就把b的值给a,c的值给b,直到c等于0,此时最大公约数就是b
最小公倍数:(a*b) / 最大公约数#include<stdio.h>
// 辗转相除法求最大公约数
int fun(int a, int b){
if(b == 0)
return a;
else
return fun(b, a%b);
}
int main(){
int a, b;
scanf("%d%d", &a, &b);
int ys = fun(a, b);
printf("%d和%d的最大公约数为:%d\n",a, b, ys);
printf("%d和%d的最小公倍数为:%d", a, b, (a*b)/ys);
return 0;
}



那三个数  a, b, c 的最大公约数和最小公倍数呢
最大公约数:用前两个数的最大公约数和第三个数再求最大公约数
最小公倍数:用前两个数的最小公倍数和第三个数再求最小公倍数#include<stdio.h>
int fun(int a, int b){
if(b == 0)
return a;
else
return fun(b, a % b);
}
int yx(int a, int b){
return a*b / fun(a, b);
}
int main(){
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("最大公约数为:%d\n", fun(fun(a, b), c));
printf("最小公倍数为;%d", yx(yx(a, b), c));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐