求兩個數的最大公約數,最小公倍數
阿新 • • 發佈:2018-11-25
題目描述
輸入兩個正整數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;
}