求两个数m和n的最大公约数。c语言
时间: 2024-12-15 14:24:40 浏览: 6
求两个数m和n的最大公约数(Greatest Common Divisor,简称GCD)可以使用欧几里得算法(Euclidean Algorithm),也称为辗转相除法。以下是C语言中的一种常见实现:
```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函数,每次将较大数替换为余数
}
int main() {
int m, n;
printf("请输入两个整数m和n:");
scanf("%d %d", &m, &n);
int result = gcd(m, n);
printf("m和n的最大公约数是:%d\n", result);
return 0;
}
```
在这个程序中,用户输入两个整数`m`和`n`,然后`gcd`函数通过不断取余数的方式逐步缩小两数直到找到它们的最大公约数。
相关问题
求两个数m和n的最大公约数,C语言
在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;
}
```
阅读全文