// 输入两个整数m和n,求其最大公约数和最小公倍数
#include <stdio.h>
#include <math.h>
/* 最大公约数 */
int gcd(int a, int b) {
int t;
if (a < b) {
t = a;
a = b;
b = t;
}
if (b == 0)
return a;
return gcd(b, a % b);
}
/* 最小公倍数 */
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
void main() {
int max, min, num1, num2, temp;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
if (num1 < num2) {
temp = num1;
num1 = num2;
num2 = temp;
}
max = num1, min = num2;
while (min != 0) {
temp = max % min;
max = min;
min = temp;
}
printf("他们的最大公约数为:%d\n", max);
printf("他们的最小公倍数为:%d\n", num1 * num2 / max);
// 递归法
printf("他们的最大公约数为:%d\n", gcd(num1, num2));
printf("他们的最小公倍数为:%d\n", lcm(num1, num2));
}
求最大公约数和最小公倍数
最新推荐文章于 2020-04-23 19:39:35 发布