C语言题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
作者:野牛程序员:2023-12-26 12:40:31C语言阅读 2984
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析: (1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数; (2)求最大公约数用辗转相除法(又名欧几里德算法)
输入两个正整数m和n,通过辗转相除法,计算它们的最大公约数和最小公倍数。
#include <stdio.h>
// 函数声明
int gcd(int x, int y);
int lcm(int x, int y);
int main() {
// 输入两个正整数m和n
int m, n;
scanf("%d %d", &m, &n);
// 计算最大公约数和最小公倍数
int result_gcd = gcd(m, n);
int result_lcm = lcm(m, n);
// 输出结果
printf("%d\\n", result_gcd);
printf("%d\\n", result_lcm);
return 0;
}
// 计算最大公约数的函数
int gcd(int x, int y) {
int temp;
while (y != 0) {
temp = x % y;
x = y;
y = temp;
}
return x;
}
// 计算最小公倍数的函数
int lcm(int x, int y) {
return x * y / gcd(x, y);
}这是一个用C语言编写的程序,实现了输入两个正整数m和n,然后计算它们的最大公约数和最小公倍数。程序中使用了辗转相除法来求最大公约数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:51定时器T0和T1的使用问题
- 下一篇:雾化片的原理
