1. 程式人生 > >求兩個數的最大公約數,最小公倍數

求兩個數的最大公約數,最小公倍數

題目描述

輸入兩個正整數m和n,求其最大公約數和最小公倍數。

輸入

兩個整數

輸出

最大公約數,最小公倍數

解題思路

最大公約數(GCD)和最小公倍數(LCM)的計算方法可以在這裡獲取[這兒]
本文先用輾轉相除法求出兩個數的最大公約數,然後利用公式

LCM(a,b)=abGCD(a,b)
求出兩個數的最小公倍數,下面是程式碼(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; }