C语言 输入m,n求最大公约数
时间: 2025-01-18 12:08:36 浏览: 35
在C语言中,可以通过多种方法求两个数m和n的最大公约数(GCD)。其中,辗转相除法(欧几里得算法)是最常用且高效的方法之一。以下是一个使用辗转相除法求最大公约数的C语言程序示例:
```c
#include <stdio.h>
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main() {
int m, n;
printf("请输入两个整数m和n:");
scanf("%d %d", &m, &n);
int result = gcd(m, n);
printf("最大公约数是:%d\n", result);
return 0;
}
```
这个程序的工作原理如下:
1. 定义一个函数`gcd`,它接受两个整数`a`和`b`作为参数,并返回它们的最大公约数。
2. 在`gcd`函数中,使用辗转相除法来计算最大公约数。
3. 在`main`函数中,提示用户输入两个整数`m`和`n`,并读取它们。
4. 调用`gcd`函数计算`m`和`n`的最大公约数,并将结果存储在`result`变量中。
5. 最后,打印出最大公约数。
相关问题
c语言求m和n最大公约数
以下是用C语言求m和n最大公约数的代码:
```c
#include <stdio.h>
int main() {
int m, n, t, r;
printf("请输入两个数:\n");
scanf("%d%d", &m, &n);
if (m < n) {
t = m;
m = n;
n = t;
}
while (n != 0) {
r = m % n;
m = n;
n = r;
}
printf("最大公约数为:%d\n", m);
return 0;
}
```
输入m,n求最大公约数和最小公倍数c语言
以下是求最大公约数和最小公倍数的C语言代码:
```c
#include <stdio.h>
int main()
{
int m, n, i, gcd, lcm;
printf("Enter two positive integers: ");
scanf("%d %d", &m, &n);
// 求最大公约数
for(i=1; i<=m && i<=n; ++i)
{
if(m%i==0 && n%i==0)
gcd = i;
}
// 求最小公倍数
lcm = m*n/gcd;
printf("Greatest common divisor of %d and %d is %d\n", m, n, gcd);
printf("Least common multiple of %d and %d is %d\n", m, n, lcm);
return 0;
}
```
运行结果:
```
Enter two positive integers: 12 30
Greatest common divisor of 12 and 30 is 6
Least common multiple of 12 and 30 is 60
```
阅读全文
相关推荐















