版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jkol12/article/details/51513699
题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入
两个整数
输出
最大公约数,最小公倍数
解题思路
最大公约数(GCD)和最小公倍数(LCM)的计算方法可以在这里获取[这儿]
本文先用辗转相除法求出两个数的最大公约数,然后利用公式
求出两个数的最小公倍数,下面是代码(C)
#include <stdio.h>
void swap(int *m, int *n)
{
int temp;
temp = *m;
*m = *n;
*n = temp;
}
int main()
{
int a, b, l, gcd, lcm, m, n;
while (scanf("%d%d", &a, &b) != EOF)
{
m = a, n = b;
if (n > m)
swap(&m, &n);
l = n;
while (l = m % n)
{
m = n;
n = l;
}
gcd = n;
lcm = (a * b) / gcd;
printf("%d,%d\n", gcd, lcm);
}
return 0;
}