由键盘输入两个正整数m、n(m、n<1000000),计算它们的最大公约数。
时间: 2023-04-15 07:03:50 浏览: 120
可以使用辗转相除法来计算两个正整数m和n的最大公约数。具体步骤如下:
1. 如果m小于n,则交换m和n的值,使得m大于等于n。
2. 用m除以n,得到余数r。
3. 如果r等于,则n就是最大公约数。
4. 如果r不等于,则用n除以r,得到余数r1。
5. 重复步骤3和4,直到余数为,此时n就是最大公约数。
例如,假设输入m=24,n=36,按照上述步骤计算:
1. 交换m和n的值,得到m=36,n=24。
2. 用m除以n,得到余数r=12。
3. r不等于,继续计算。
4. 用n除以r,得到余数r1=。
5. 此时n=12,即为最大公约数。
因此,输出结果为12。
相关问题
C语言键盘输入两个正整数m,n计算并输出其最大公约数
您好,以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int m, n, i, gcd;
printf("请输入两个正整数m和n:\n");
scanf("%d %d", &m, &n);
for (i = 1; i <= m && i <= n; i++) {
if (m % i == 0 && n % i == 0) {
gcd = i;
}
}
printf("最大公约数为:%d\n", gcd);
return 0;
}
```
代码思路:
1. 首先,我们通过 `scanf` 函数从键盘输入两个正整数 `m` 和 `n`;
2. 然后,我们使用 `for` 循环从 1 开始,逐个判断 `i` 是否是 `m` 和 `n` 的公约数;
3. 如果 `i` 是 `m` 和 `n` 的公约数,则将其赋值给变量 `gcd`;
4. 循环结束后,我们输出变量 `gcd` 的值,即为 `m` 和 `n` 的最大公约数。
希望可以帮到您!
键盘输入两个正整数m,n,计算并输出其最大公约数
您好,我可以回答您的问题。计算两个正整数m和n的最大公约数可以使用欧几里得算法,也称为辗转相除法。具体步骤如下:
1. 用较大数除以较小数,得到余数r(r=m%n)。
2. 若r=,则最大公约数为n;若r≠,则把n赋值给m,把r赋值给n,再执行步骤1。
3. 重复执行步骤1和步骤2,直到r=为止。
最后得到的n即为最大公约数。希望能对您有所帮助。
阅读全文