输入两个整数,求其最大公约数
时间: 2023-08-29 11:07:30 浏览: 47
好的,我可以帮你实现一个求两个整数最大公约数的函数。你需要输入两个整数,然后函数将返回它们的最大公约数。以下是 Python 3 代码实现:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
在这个函数中,我们使用了递归的方法来求最大公约数。如果第二个数为 0,那么最大公约数就是第一个数;否则,我们将第二个数和第一个数取模,然后递归调用函数。
相关问题
输入两个整数求其最大公约数和最小公倍数
以下是Python实现输入两个整数求其最大公约数和最小公倍数的代码:
```python
# 定义函数,求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 定义函数,求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
# 输入两个整数
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
# 输出最大公约数和最小公倍数
print("{0}和{1}的最大公约数为:{2}".format(num1, num2, gcd(num1, num2)))
print("{0}和{1}的最小公倍数为:{2}".format(num1, num2, lcm(num1, num2)))
```
运行结果:
```
请输入第一个整数:24
请输入第二个整数:36
24和36的最大公约数为:12
24和36的最小公倍数为:72
```
c语言中输入两个整数求其最大公约数和最小公倍数
以下是C语言中输入两个整数求其最大公约数和最小公倍数的代码和解释:
```c
#include <stdio.h>
int main() {
int m, n, t, i, k;
printf("请输入两个正整数:\n");
while(1) {
scanf("%d %d",&m,&n);
if(m*n>0) {
break;
}
printf("输入有误请再次输入:\n");
}
if(m<n) {
t=m;
m=n;
n=t;
}
for(i=n;i>0;i--) {
if(m%i==0 && n%i==0) {
break;
}
}
for(k=m; ;k++) {
if(k%m==0 && k%n==0) {
break;
}
}
printf("最大公约数为%d\n",i);
printf("最小公倍数为:%d\n",k);
return 0;
}
```
解释:
1. 首先,通过`scanf`函数输入两个正整数m和n。
2. 判断m和n是否都为正整数,如果不是则要求重新输入。
3. 如果m小于n,则交换m和n的值。
4. 从n开始向下遍历,找到第一个既能整除m又能整除n的数,即为最大公约数。
5. 从m开始向上遍历,找到第一个既能被m整除又能被n整除的数,即为最小公倍数。
6. 输出最大公约数和最小公倍数。