题目:最大公约数和最小公倍数的计算
时间限制:1S
内存限制:10000Kb
问题描述:
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入说明:
输入两个正整数m和n。
输出说明:
输出m和n的最大公约数和最小公倍数。
输入样例:
8 12
输出样例:
4 24
【代码展示】
#include <stdio.h>
int main() {
int m, n, min;
int i;
int ar1[50] = {0};
int a = 0, max1 = 0, max;
scanf("%d %d", &m, &n);
min = (m < n) ? m : n;
max = (m > n ? m : n);
//最大公约数
for (i = 1 ; i <= min; i++) {
if (m % i == 0 && n % i == 0) {
ar1[a] = i;
a++;
}
}
for (i = 0; i < a; i++) {
if (ar1[i] > max1) {
max1 = ar1[i];
}
}
printf("%d ", max1);
//最小公倍数
for (i = 1;; i++) {
if ( max * i % min == 0) {
break;
}
}
printf("%d", max * i);
return 0;
}