当前位置:首页C语言 > 正文

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 的余数,然后交换 ab 的值,直到 b 变为 0。最终,a 的值就是两个数的最大公约数。

请注意,欧几里德算法非常高效,适用于求解任意两个正整数的最大公约数。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击