用辗转相除法求两个整数公约数
时间: 2023-07-16 15:14:08 浏览: 111
辗转相除法,也叫欧几里得算法,是求最大公约数的一种常用方法。
假设要求两个正整数a和b的最大公约数,用辗转相除法的步骤如下:
1. 用a除以b,得到商q和余数r;
2. 如果r等于0,则b就是最大公约数;
3. 如果r不等于0,则用b除以r,得到商q'和余数r';
4. 如此反复,直到余数为0,则最后一个非零余数的除数就是a和b的最大公约数。
以下是辗转相除法的Python代码实现:
```python
def gcd(a, b):
while b != 0:
r = a % b
a = b
b = r
return a
```
其中,a代表第一个整数,b代表第二个整数。
相关问题
编写c语言程序,用辗转相除法求两个整数公约数
以下是使用辗转相除法求两个整数公约数的C语言程序:
```c
#include <stdio.h>
int main() {
int num1, num2, remainder;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
while (num2 != 0) {
remainder = num1 % num2;
num1 = num2;
num2 = remainder;
}
printf("它们的公约数为:%d\n", num1);
return 0;
}
```
程序先要求用户输入两个整数,然后使用while循环来不断进行辗转相除的操作,直到其中一个数变为0为止。最后输出剩下的那个数,即为它们的最大公约数。
用辗转相除法求两个整数的最大公约数
以下是使用辗转相除法求两个整数的最大公约数的Python代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 示例
print(gcd(24, 36)) # 输出:12
```
在这个代码中,我们定义了一个名为`gcd`的函数,它接受两个整数`a`和`b`作为参数。如果`b`等于0,则返回`a`,否则递归调用`gcd`函数,将`b`和`a%b`作为参数传递给它。这个过程会一直持续到`b`等于0,此时`a`就是最大公约数。
阅读全文