A33829. 提示信息倍数与约数:如果a能被b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。举例:12、16的公约数有1、2、4,其中最大的一个是4,所以4是12与16的最大公约数。最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个,叫做这…
题目描述
提示信息
倍数与约数:如果a能被b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。
最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。
举例:12、16的公约数有1、2、4,其中最大的一个是4,所以4是12与16的最大公约数。
最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个,叫做这几个数的最小公倍数。
举例:4的倍数有4、8、12、16,……,6的倍数有6、12、18、24,……,4和6的公倍数有12、24,……,其中最小的是12,所以4和6最小公倍数为12。
题目描述
分别输入两个正整数(1<正整数<201),输出这两个正整数的最大公约数M及最小公倍数N(注:M和N输出到一行,之间以一个英文逗号隔开)。
输入
第1行输入第一个正整数
第2行输入第二个正整数
输出
输出这两个正整数的最大公约数M及最小公倍数N(M和N输出到一行,之间以一个英文逗号隔开)
样例输入
4
6
样例输出
2,12
参考答案
// 参考代码1
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <string.h>
#include <vector>
using namespace std;
#define INF 0x7f
int main() {
int n, m, b, s, a;
cin >> n >> m;
if (n > m)
a = m;
else
a = n;
for (int i = 1; i <= a; i++) {
if (n % i == 0 && m % i == 0) {
b = i;
}
}
for (int i = n * m; i > 0; i--) {
if (i % n == 0 && i % m == 0) {
s = i;
}
}
cout << b << "," << s;
}答案解析
// 参考代码2
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, max = 0, min = 100000;
cin >> a >> b;
if (a < b) {
swap(a, b);
}
for (int i = 1; i <= a; i++) {
if (a % i == 0 && b % i == 0) {
max = i;
}
}
for (int j = 1; j <= a; j++) {
for (int k = 1; k <= a; k++) {
if (a * j == b * k && min > a * j) {
min = a * j;
}
}
}
cout << max << "," << min << endl;
return 0;
}