最大公因子怎么编程序

时间:2025-01-30 01:22:02 单机游戏

```c

include

// 递归实现最大公因子

int gcd_recursive(int a, int b) {

if (b == 0) {

return a;

}

return gcd_recursive(b, a % b);

}

// 迭代实现最大公因子

int gcd_iterative(int a, int b) {

while (b != 0) {

int temp = b;

b = a % b;

a = temp;

}

return a;

}

int main() {

int num1, num2;

printf("请输入两个整数:");

scanf("%d %d", &num1, &num2);

// 调用递归函数计算最大公因子

int result_recursive = gcd_recursive(num1, num2);

printf("递归方法计算的最大公因子为:%d\n", result_recursive);

// 调用迭代函数计算最大公因子

int result_iterative = gcd_iterative(num1, num2);

printf("迭代方法计算的最大公因子为:%d\n", result_iterative);

return 0;

}

```

代码说明:

递归实现

`gcd_recursive` 函数通过递归调用自身来计算最大公因子。当 `b` 为 0 时,返回 `a` 作为最大公因子。否则,继续递归调用 `gcd_recursive(b, a % b)`。

迭代实现

`gcd_iterative` 函数使用 `while` 循环来实现辗转相除法。在每次循环中,将 `b` 赋值为 `a % b`,然后将 `a` 赋值为原来的 `b`,直到 `b` 为 0。此时,`a` 即为最大公因子。

主函数

在 `main` 函数中,首先接受用户输入的两个整数 `num1` 和 `num2`。

分别调用 `gcd_recursive` 和 `gcd_iterative` 函数计算最大公因子,并输出结果。

使用示例:

```

请输入两个整数:36 24

递归方法计算的最大公因子为:12

迭代方法计算的最大公因子为:12

```

这个程序可以计算任意两个整数的最大公因子,并提供了递归和迭代两种实现方法。