求两个数m和n的最大公约数,C语言
时间: 2024-10-19 15:05:23 浏览: 26
在C语言中,求两个整数m和n的最大公约数(Greatest Common Divisor,简称GCD),可以使用欧几里得算法(Euclidean Algorithm)。以下是简单的实现:
```c
#include <stdio.h>
// 定义函数计算最大公约数
int gcd(int m, int n) {
if (n == 0)
return m; // 如果n为0,则m就是最大公约数
else
return gcd(n, m % n); // 递归调用gcd,每次用较小的数替换原来的n
}
int main() {
int m, n;
printf("请输入两个整数:");
scanf("%d %d", &m, &n);
int result = gcd(m, n);
printf("两数的最大公约数是:%d\n", result);
return 0;
}
```
在这个程序中,`gcd`函数通过不断将较大数除以较小数取余数,直到余数为0,此时较小的数即为最大公约数。在主函数中,用户输入两个数,然后调用`gcd`函数计算结果。
相关问题
辗除法求两个数m和n的最大公约数和最小公倍数C语言
以下是使用辗转相除法求两个数m和n的最大公约数和最小公倍数的C语言代码:
```c
#include <stdio.h>
int main() {
int m, n, temp, gcd, lcm;
printf("请输入两个正整数m和n,以空格隔开:\n");
scanf("%d %d", &m, &n);
int a = m, b = n;
// 求最大公约数
while (n != 0) {
temp = m % n;
m = n;
n = temp;
}
gcd = m;
// 求最小公倍数
lcm = a * b / gcd;
printf("%d和%d的最大公约数为:%d\n", a, b, gcd);
printf("%d和%d的最小公倍数为:%d\n", a, b, lcm);
return 0;
}
```
用除法求两个数m和n的最大公约数和最小公倍数C语言
以下是用除法求两个数m和n的最大公约数和最小公倍数的C语言代码实现:
```c
#include <stdio.h>
// 求最大公约数
int gcd(int m, int n) {
int r;
while (n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}
// 求最小公倍数
int lcm(int m, int n) {
return m * n / gcd(m, n);
}
int main() {
int m = 12, n = 18;
printf("m和n的最大公约数为:%d\n", gcd(m, n));
printf("m和n的最小公倍数为:%d\n", lcm(m, n));
return 0;
}
```
阅读全文