编写函数,求最大公约数:从键盘输入两个整数m和n,用min表示其中较小的一个,然后通过循环求出在2--min之间,能够整除m和n的最大数,记为div。
时间: 2024-05-01 11:21:58 浏览: 70
好的,可以使用辗转相除法求解最大公约数。以下是Python的实现:
```python
def gcd(m, n):
# 先找出较小的数
min_num = min(m, n)
# 从2到min_num逆序遍历
for i in range(min_num, 1, -1):
# 如果可以同时整除m和n,则返回这个数
if m % i == 0 and n % i == 0:
return i
# 如果没有找到能够同时整除m和n的数,则它们的最大公约数为1
return 1
```
在调用这个函数时,可以从键盘输入m和n的值,然后直接调用函数即可:
```python
m = int(input("请输入第一个数:"))
n = int(input("请输入第二个数:"))
print("最大公约数为:", gcd(m, n))
```
这里需要注意的是,如果输入的两个数都小于等于1,则它们的最大公约数为1。
相关问题
用C语言编写函数,求最大公约数:从键盘输入两个整数m和n,用min表示其中较小的一个,然后通过循环求出在2--min之间,能够整除m和n的最大数,记为div。
好的,我来给你写一个求最大公约数的 C 语言函数:
```c
#include <stdio.h>
int gcd(int m, int n) {
int min = m < n ? m : n;
int div = 1;
for (int i = 2; i <= min; i++) {
if (m % i == 0 && n % i == 0) {
div = i;
}
}
return div;
}
int main() {
int m, n;
printf("请输入两个整数m和n:");
scanf("%d%d", &m, &n);
int result = gcd(m, n);
printf("最大公约数为:%d\n", result);
return 0;
}
```
这个函数中,我们首先用 `min` 变量表示两个数中较小的一个。然后循环从 2 开始到 `min` 结束,判断能够同时整除 `m` 和 `n` 的最大数,并用 `div` 变量记录下来。最后返回 `div` 即可。在 `main` 函数中,我们调用 `gcd` 函数并输出结果。
4. 编写函数,求最大公约数:从键盘输入两个整数m和n,用min表示其中较小的一个,然后通过循环求出在2--min之间,能够整除m和n的最大数,记为div。C语言
以下是一个求最大公约数的C语言程序,其中包括一个gcd函数来实现求最大公约数的操作:
```c
#include <stdio.h>
int gcd(int m, int n);
int main() {
int m, n;
printf("请输入两个整数:");
scanf("%d %d", &m, &n);
printf("最大公约数为:%d", gcd(m, n));
return 0;
}
int gcd(int m, int n) {
int i, min, div = 1;
min = m < n ? m : n;
for (i = 2; i <= min; i++) {
if (m % i == 0 && n % i == 0) {
div = i;
}
}
return div;
}
```
程序中,从键盘输入两个整数m和n,调用gcd函数求它们的最大公约数。gcd函数中,首先找到m和n中的较小值min,然后从2到min遍历可能的公约数,如果i能够同时整除m和n,则将其赋值给div变量。最终返回div的值即可得到m和n的最大公约数。
阅读全文