C实验1、最大公约数问题:求两个自然数的最大公约数。即任意给定两个整数a,b,求a和b的最大公约数;
时间: 2024-11-24 13:40:04 浏览: 11
求最大公约数
在C语言中,可以使用欧几里得算法(也称为辗转相除法)来求解两个整数a和b的最大公约数(GCD)。这个算法的基本思想是:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。以下是简单的C程序实现:
```c
#include <stdio.h>
// 定义函数计算最大公约数
int gcd(int a, int b) {
if (b == 0) // 如果b为0,那么最大公约数就是a
return a;
else
return gcd(b, a % b); // 递归调用gcd函数,更新a和b的位置
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
int result = gcd(num1, num2);
printf("这两个数的最大公约数是:%d\n", result);
return 0;
}
```
在这个程序中,`gcd`函数通过不断将较大的数替换为其与较小数的余数,直到余数为零,此时较小的数即为最大公约数。
阅读全文