辗转相除法c语言

时间:2025-02-13 20:18:28 单机游戏

C语言实现辗转相除法,也称为欧几里得算法,是一种用于计算两个正整数a和b的最大公约数的高效方法。其基本思想是:两个正整数a和b(a > b),它们的最大公约数等于a除以b的余数c和较小数b的...

迭代法

```c

include

int gcd(int a, int b) {

int c;

while (c != 0) {

c = a % b;

a = b;

b = c;

}

return b;

}

int main() {

int a, b;

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

scanf("%d %d", &a, &b);

printf("最大公约数是: %d\n", gcd(a, b));

return 0;

}

```

递归法

```c

include

int gcd(int a, int b) {

if (b == 0) return a;

return gcd(b, a % b);

}

int main() {

int a, b;

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

scanf("%d %d", &a, &b);

printf("最大公约数是: %d\n", gcd(a, b));

return 0;

}

```

循环法

```c

include

int gcd(int a, int b) {

while (b != 0) {

int temp = a % b;

a = b;

b = temp;

}

return a;

}

int main() {

int a, b;

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

scanf("%d %d", &a, &b);

printf("最大公约数是: %d\n", gcd(a, b));

return 0;

}

```

这些方法都可以用来计算两个正整数的最大公约数。你可以根据自己的需求和喜好选择其中一种方法。