c语言编写:从键盘上输入两个正整数x,y,求它们的最大公约数。
时间: 2024-09-14 14:15:33 浏览: 77
c代码-输入两个正整数m和n,求其最大公约数和最小公倍数。
在C语言中,可以通过编写一个函数来实现求两个正整数x和y的最大公约数。常用的方法是使用辗转相除法,也称欧几里得算法。该算法的思路是:如果y不为零,则x和y的最大公约数与y和x%y(x除以y的余数)的最大公约数相同。当y为零时,x就是这两个数的最大公约数。
以下是使用C语言实现的一个示例代码:
```c
#include <stdio.h>
// 函数声明
int gcd(int x, int y);
int main() {
int x, y, result;
// 提示用户输入两个正整数
printf("请输入两个正整数x和y:");
scanf("%d %d", &x, &y);
// 调用函数计算最大公约数
result = gcd(x, y);
// 输出结果
printf("最大公约数是:%d\n", result);
return 0;
}
// 函数定义:使用欧几里得算法求最大公约数
int gcd(int x, int y) {
while(y != 0) {
int temp = y;
y = x % y;
x = temp;
}
return x; // 当y为0时,x就是最大公约数
}
```
上述代码首先定义了一个名为`gcd`的函数,用于计算两个整数的最大公约数。然后在`main`函数中提示用户输入两个正整数,并调用`gcd`函数计算它们的最大公约数,最后输出结果。
阅读全文