C语言求两个正整数的最大公约数
作者:野牛程序员:2023-08-23 11:34:05C语言阅读 2763
求两个正整数的最大公约数(Greatest Common Divisor,简称 GCD)可以使用欧几里德算法(辗转相除法)来实现。该算法的核心思想是通过反复取两个数的余数来逐步缩小问题规模,直到找到最大公约数。
以下是用 C 语言实现求两个正整数的最大公约数的示例代码:
#include <stdio.h> // 函数声明:求最大公约数 int gcd(int a, int b); int main() { int num1, num2; printf("请输入两个正整数:"); scanf("%d %d", &num1, &num2); int result = gcd(num1, num2); printf("最大公约数是:%d\\n", result); return 0; } // 函数定义:求最大公约数 int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; }
在这段代码中,gcd
函数使用欧几里德算法来计算两个数的最大公约数。循环中,每次将 b
赋值为 a
除以 b
的余数,然后交换 a
和 b
的值,直到 b
变为 0。最终,a
的值就是两个数的最大公约数。
请注意,欧几里德算法非常高效,适用于求解任意两个正整数的最大公约数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C语言约瑟夫问题(约瑟夫环)
- 下一篇:C语言筛法求素数(质数)