求任意两个数最大公约数的代码
时间: 2024-02-04 17:35:32 浏览: 85
以下是使用欧几里得算法(辗转相除法)求任意两个数的最大公约数的 Python 代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 示例用法
print(gcd(24, 36)) # 输出:12
```
另外,如果需要求多个数的最大公约数,可以使用递归的方式,将多个数的最大公约数转化为两个数的最大公约数的求解。例如:
```python
def gcd_list(nums):
if len(nums) == 2:
return gcd(nums[0], nums[1])
else:
return gcd(nums[0], gcd_list(nums[1:]))
# 示例用法
print(gcd_list([24, 36, 48])) # 输出:12
```
相关问题
编写一个方法用于求任意两个正藝数的最大公约数,调用此方法求10和25的最大公约数,用Java代码写出来
以下是Java代码:
```
public class Main {
public static void main(String[] args) {
int num1 = 10;
int num2 = 25;
int gcd = findGCD(num1, num2);
System.out.println("10和25的最大公约数为:" + gcd);
}
public static int findGCD(int num1, int num2) {
if (num2 == 0) {
return num1;
}
return findGCD(num2, num1 % num2);
}
}
```
用C写求任意两个数的最大公约数
以下是用C语言实现求任意两个数的最大公约数的代码:
```c
#include <stdio.h>
int gcd(int a, int b);
int main()
{
int num1, num2, result;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
result = gcd(num1, num2);
printf("GCD of %d and %d is %d\n", num1, num2, result);
return 0;
}
int gcd(int a, int b)
{
if (a == 0)
return b;
else
return gcd(b % a, a);
}
```
该程序通过递归调用实现了辗转相除法来求任意两个数的最大公约数。
阅读全文