题目描述 输入两个正整数,输出其最大公约数和最小公倍数。 输入 输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。 输出 输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。c语言
时间: 2024-12-21 10:22:23 浏览: 41
题目要求编写一个程序,给定两个正整数n和m,计算它们的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。在C语言中,可以采用欧几里得算法(Euclidean Algorithm)来求最大公约数,然后利用公式 `LCM(a, b) = |a * b| / GCD(a, b)` 来计算最小公倍数。
以下是使用C语言的一个简单示例:
```c
#include <stdio.h>
// 求最大公约数的欧几里得算法
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int n, m;
printf("请输入两个正整数n和m:");
scanf("%d%d", &n, &m);
// 输出最大公约数和最小公倍数
int result[2] = {gcd(n, m), lcm(n, m)};
printf("最大公约数:%d\n", result[0]);
printf("最小公倍数:%d\n", result[1]);
return 0;
}
```
相关问题
求两数的最大公约数和最小公倍数 输入两个正整数m和n,求其最大公约数和最小公倍数 输入说明 两个正整数 输出说明 最大公约数最小公倍数 输入示例 36 输出示例 最大公约数:3 最小公倍数:6 >_编写程序
为了计算两个正整数 `m` 和 `n` 的最大公约数(Greatest Common Divisor,GCD)和最小公倍数(Least Common Multiple,LCM),你可以使用欧几里得算法(Euclidean Algorithm)来找到 GCD,然后利用公式 `GCD(m, n) * LCM(m, n) = m * n` 来计算 LCM。以下是Python的一个简单实现:
```python
def gcd(m, n):
while n != 0:
temp = m % n
m = n
n = temp
return m
def lcm(m, n):
return (m * n) // gcd(m, n)
# 输入示例
m = int(input("请输入第一个正整数:"))
n = int(input("请输入第二个正整数:"))
# 计算并输出结果
gcd_value = gcd(m, n)
lcm_value = lcm(m, n)
print(f"最大公约数:{gcd_value}")
print(f"最小公倍数:{lcm_value}")
```
在这个程序中,用户需要输入两个正整数,程序会计算并打印出它们的最大公约数和最小公倍数。如果你想要运行这个代码,只需将输入部分的代码复制到一个Python环境中即可。
题目描述 输入两个正整数,求它们的最大公约数和最小公倍数 输入 两个正整数 输出 最大公约数 最小公倍数 我需要详细的C语言代码
好的,以下是详细代码:
```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的最大公约数为:%d\n", num1, num2, gcd);
printf("%d和%d的最小公倍数为:%d\n", num1, num2, lcm);
return 0;
}
```
以上代码可以计算出两个正整数的最大公约数和最小公倍数。如果需要输入更多的正整数进行计算,可以考虑将代码封装成一个函数,更加方便调用。
阅读全文