[题目4:求最大公约数]由键盘输入两个正整数m、n(m、n用长整数表示),计算它们的最大公约数。 [第一组自测数据] [键盘输入]16,24 [正确输出]8 [第二组自测数据] [键盘输入]17,25 [正确输出]1 [提示]公约数是既能整除m又能整除n的数,题目要求满足这一条件的最大的一个。
时间: 2023-04-03 15:03:50 浏览: 137
从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。
5星 · 资源好评率100%
答案:可以使用辗转相除法来求最大公约数,具体步骤如下:
1. 用较小的数除以较大的数,得到余数r。
2. 若r为0,则较大的数即为最大公约数。
3. 若r不为0,则用较小的数除以r,再得到余数r1。
4. 如此反复,直到余数为0为止,最后的除数即为最大公约数。
以下是代码实现:
#include <stdio.h>
int main()
{
long m, n, r;
printf("请输入两个正整数m、n:");
scanf("%ld%ld", &m, &n);
while (n != 0)
{
r = m % n;
m = n;
n = r;
}
printf("最大公约数为:%ld\n", m);
return 0;
}
阅读全文