输入两个正整数 ,求其中最大公约数和最小公倍数
时间: 2023-11-23 21:06:34 浏览: 148
可以使用辗转相除法来求解最大公约数,同时可以利用公式:两数之积等于最大公约数与最小公倍数的积,来求解最小公倍数。
具体步骤如下:
1. 输入两个正整数 a 和 b。
2. 用较大的数除以较小的数,得到余数 c,如果 c 等于 0,说明较小的数就是最大公约数,退出循环;否则,用较小的数除以 c,得到余数 d,再用 c 除以 d,得到余数 e,以此类推,直到余数为 0,此时被除数就是最大公约数。
3. 最小公倍数等于两数之积除以最大公约数。
下面是 Python 代码实现:
```python
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
# 求最大公约数
while b != 0:
r = a % b
a = b
b = r
max_common_divisor = a
# 求最小公倍数
min_common_multiple = int((a * (b / a)))
print("最大公约数为:", max_common_divisor)
print("最小公倍数为:", min_common_multiple)
```
注意,这里的除法要用整除符号 `//`,而不是普通的除法符号 `/`,否则得到的结果可能会出现小数。
相关问题
用c语言中的for循环写出一个输入两个正整数求其中最大公约数和最小公倍数的程序
下面是用C语言中的for循环写出的一个求两个正整数的最大公约数和最小公倍数的程序:
```c
#include <stdio.h>
int main() {
int num1, num2, i, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
// 求最大公约数
for (i = 1; i <= num1 && i <= num2; i++) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
// 求最小公倍数
lcm = (num1 * num2) / gcd;
printf("最大公约数为 %d,最小公倍数为 %d\n", gcd, lcm);
return 0;
}
```
程序首先要求用户输入两个正整数,然后用for循环从1到两个数中较小的数依次检查是否能同时被两个数整除,如果能,则更新最大公约数的值。最后用求得的最大公约数和两个数的乘积计算最小公倍数,最后输出最大公约数和最小公倍数的值。
输入两个正整数 求其最大公约数和最小公倍数
算法一:
最大公约数可以使用辗转相除法(又称欧几里得算法)来求解,具体步骤如下:
1. 用较小数除以较大数,得到余数
2. 把较大数作为下一轮的较小数,余数作为下一轮的较大数,重复上述步骤,直到余数为0
3. 最后的较大数即为最大公约数
最小公倍数可以通过最大公约数来求解,公式为两数之积除以最大公约数。
代码实现如下:
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
# 求最大公约数
x, y = max(a, b), min(a, b)
while y:
x, y = y, x % y
gcd = x
# 求最小公倍数
lcm = a * b // gcd
print("最大公约数为:", gcd)
print("最小公倍数为:", lcm)
算法二:
最大公约数可以使用质因数分解来求解,具体步骤如下:
1. 分别对两个数进行质因数分解
2. 找出两个数中共有的质因数及其次数,次数取两个数中次数的最小值
3. 把这些公共质因数相乘,得到最大公约数
最小公倍数可以通过最大公约数和两数之积来求解,公式为两数之积除以最大公约数。
代码实现如下:
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
# 求最大公约数
factors_a, factors_b = [], []
for i in range(2, a + 1):
while a % i == 0:
factors_a.append(i)
a //= i
for i in range(2, b + 1):
while b % i == 0:
factors_b.append(i)
b //= i
gcd = 1
for i in factors_a:
if i in factors_b:
gcd *= i
factors_b.remove(i)
# 求最小公倍数
lcm = a * b // gcd
print("最大公约数为:", gcd)
print("最小公倍数为:", lcm)
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)