当前位置:首页 > 行业动态 > 正文

c语言怎么求最大公约数

要求最大公约数可以使用辗转相除法(欧几里得算法)来实现,下面是详细的步骤和小标题:

1、辗转相除法原理

辗转相除法是一种求两个整数的最大公约数的算法。

其基本原理是利用以下性质:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。

2、算法步骤

输入两个整数a和b,确保a大于等于b。

如果b等于0,则返回a作为最大公约数。

否则,将a除以b取余数,记为r1。

将b赋值给a,将r1赋值给b。

重复执行第4步,直到b等于0为止。

此时,a的值即为最大公约数。

3、C语言代码实现

“`c

#include <stdio.h>

// 函数声明

int gcd(int a, int b);

int main() {

int num1, num2;

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

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

printf("最大公约数为:%d

", gcd(num1, num2));

return 0;

}

// 辗转相除法求最大公约数的函数实现

int gcd(int a, int b) {

while (b != 0) {

int r1 = a % b; // 计算余数r1

a = b; // 将b赋值给a

b = r1; // 将r1赋值给b

}

return a; // 返回最大公约数a

}

“`

4、示例运行结果

假设输入的两个整数为48和18,程序的输出结果为:

“`

请输入两个整数:48 18

最大公约数为:6

“`

0