5.2 最大公约数与最小公倍数
5.2 最大公约数与最小公倍数
http://codeup.hustoj.com/contest.php?cid=100000589
A Least Common Multiple

题目释义
求n个数的最小公倍数。
第一行输入m表示样例数目,接下来m行为各个具体样例;
第二行输入n表示此样例中数字个数,接下来n个为具体数字。需求这n个数的最小公倍数。
题目解析
求n个数的最小公倍数——前两个数a、b求最小公倍数c,再将c与第三个数d求最小公倍数,······
Small Tips:为了代码书写方便,且避免只有一个数的情况,可预存一个数1,任何数与1的最小公倍数都是这个数本身。
⚠️n可能为1。此时最小公倍数即输入的那个唯一的数。
代码1(自己写的)
#include <cstdio>
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int main() {
int m, n;
int a, b;
scanf("%d", &m);
while (m--) {
scanf("%d", &n);
if (n == 1) {
scanf("%d", &a);
printf("%d\n", a);
} else {
scanf("%d %d", &a, &b);
a = a / gcd(a, b) * b;
for (int i = 3; i <= n; i++) {
scanf("%d", &b);
a = a / gcd(a, b) * b;
}
printf("%d\n", a);
}
}
return 0;
}
代码2(根据tips)
#include <cstdio>
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int main() {
int m, n;
int a, b;
scanf("%d", &m);
while (m--) {
scanf("%d", &n);
a = 1;
for (int i = 0; i < n; i++) {
scanf("%d", &b);
a = a / gcd(a, b) * b;
}
printf("%d\n",a);
}
return 0;
}
本文作者:Joey-Wang
本文链接:https://www.cnblogs.com/joey-wang/p/14541169.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步