C 语言求两个数的 GCD

2025年3月17日 | 阅读 7 分钟

在本主题中,我们将学习最大公约数(GCD),并找出在C编程语言中获取两个数的最大公约数的不同方法。

GCD of two numbers in C

最大公约数(GCD)是两个或多个数的最大公约数的数学术语。它是能完全整除两个或多个数而没有余数的最大公约数。因此,它也被称为两个数的最高公因数(HCF)。例如,两个数20和28的最大公约数是4,因为20和28都可以被1、2、4完全整除(余数为0),而在因子1、2、4中最大的正数是4。同样,两个数24和60的最大公约数是12。

使用for循环计算两个数的最大公约数

让我们考虑一个使用for循环在C语言中获取两个数的最大公约数的程序。

Gcd_for.c

输出

Enter any two numbers:
 96
36
 GCD of two numbers 96 and 36 is 12.

使用while循环计算两个数的最大公约数

让我们考虑一个使用while循环在C语言中获取两个数的最大公约数的程序。

Gcd_while.c

输出

GCD of two numbers 50 and 60 is 10.

从用户那里获取N个数的最大公约数

让我们考虑一个通过从用户获取输入来获取n个数的最大公约数的程序。

gcdNum.c

输出

GCD of two numbers 50 and 60 is 10.

从用户那里获取N个数的最大公约数

让我们考虑一个通过从用户获取输入来获取n个数的最大公约数的程序。

gcdNum.c

输出

Enter the N numbers from the users ( 0 to exists from the loop)
196
224
48
96
36
256
0

 GCD of all entered number is: 4

使用用户定义函数计算两个数的最大公约数

让我们考虑一个使用用户定义函数来获取两个数的最大公约数的程序。

Func.c

输出

Enter the first number
96
 Enter the second number
 132
 GCD of the two numbers 96 and 132 is 12

使用取模运算符计算两个数的最大公约数

让我们考虑一个使用取模运算符来查找两个数的最大公约数的程序。

Modulo.c

输出

Enter the first number:
 256
 Enter the second number:
 92
 GCD of two number 256 and 92 is 4

使用递归计算两个数的最大公约数

让我们考虑一个使用递归在C语言中查找两个数的最大公约数的程序。

Recursion.c

输出

Enter any two positive numbers:
60
48
GCD of two numbers 60 and 48 is 12

在上述程序中,递归函数GCD_Rec()不断调用自身,直到num2的值等于0。

使用if_else和for循环计算三个数的最大公约数

让我们考虑一个使用if else语句和for循环在C语言中获取三个数的最大公约数的程序。

Gcd_num.c

输出

Enter any positive numbers:
 98
49
56
 GCD of three numbers 98, 49 and 56 is 7