c语言用for语句求最大公约数和最小公倍数
时间: 2023-11-08 11:02:50 浏览: 70
C语言求最大公约数和最小公倍数
求最大公约数可以使用辗转相除法,代码如下:
```c
#include <stdio.h>
int main() {
int a, b, r;
printf("请输入两个数:\n");
scanf("%d%d", &a, &b);
while (b != 0) {
r = a % b;
a = b;
b = r;
}
printf("最大公约数为:%d\n", a);
return 0;
}
```
求最小公倍数可以利用最大公约数求解,代码如下:
```c
#include <stdio.h>
int main() {
int a, b, r, lcm;
printf("请输入两个数:\n");
scanf("%d%d", &a, &b);
int m = a, n = b;
while (b != 0) {
r = a % b;
a = b;
b = r;
}
lcm = m * n / a;
printf("最小公倍数为:%d\n", lcm);
return 0;
}
```
以上代码中,`a` 和 `b` 分别表示两个数,`r` 表示余数,`lcm` 表示最小公倍数。其中,最大公约数采用了辗转相除法的思想,最小公倍数则先求出最大公约数,然后通过公式 `lcm = m * n / a` 计算得出。
阅读全文