在C语言中利用for循环一及辗转相除法求最大公约数和最小公倍数
时间: 2023-05-14 13:06:27 浏览: 124
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int a, b, x, y, t, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d %d", &x, &y);
a = x;
b = y;
// 求最大公约数
for (t = a % b; t != 0; t = a % b) {
a = b;
b = t;
}
gcd = b;
// 求最小公倍数
lcm = x * y / gcd;
printf("%d 和 %d 的最大公约数是 %d\n", x, y, gcd);
printf("%d 和 %d 的最小公倍数是 %d\n", x, y, lcm);
return 0;
}
```
这段代码利用了 for 循环和辗转相除法求解最大公约数和最小公倍数。
相关问题
c语言利用辗转相除法求最大公约数和最小公倍数
最小公倍数和最大公约数是数学中常见的概念,也可以用C语言来实现。其中,辗转相除法是求最大公约数的一种常用方法。
求最大公约数的辗转相除法思路如下:
1. 用较大数除以较小数,得到余数。
2. 把较小数作为除数,余数作为被除数,再次进行相除。
3. 重复上述步骤,直到余数为0。
4. 最后的除数即为最大公约数。
代码实现如下:
```c
#include <stdio.h>
int gcd(int a, int b) {
int r;
while (b != 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
printf("最大公约数为:%d\n", gcd(a, b));
printf("最小公倍数为:%d\n", lcm(a, b));
return 0;
}
```
其中,gcd函数用来求最大公约数,lcm函数用来求最小公倍数。在主函数中,先输入两个整数,然后调用gcd和lcm函数分别求出最大公约数和最小公倍数,并输出结果。
需要注意的是,如果输入的两个数中有一个为0,则最大公约数为另一个数,最小公倍数为0。
C语言用辗转相除法求最大公约数和最小公倍数
最大公约数和最小公倍数可以通过辗转相除法来求解。
辗转相除法,也叫欧几里得算法,是求最大公约数的一种方法。其基本思想是:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。即,设两数为a、b(a>b),它们的最大公约数设为gcd(a,b),根据辗转相除法,有:
gcd(a,b) = gcd(b,a%b)
当a%b=0时,b即为所求的最大公约数。
最小公倍数是指两个或多个整数公有的倍数中最小的一个。可以通过最大公约数来求解。设两数为a、b(a>b),它们的最小公倍数设为lcm(a,b),则有:
lcm(a,b) = a * b / gcd(a,b)
下面是用C语言实现辗转相除法求最大公约数和最小公倍数的代码:
```c
#include <stdio.h>
// 辗转相除法求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
printf("它们的最大公约数为:%d\n", gcd(a, b));
printf("它们的最小公倍数为:%d\n", lcm(a, b));
return 0;
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)