JSK-391 公約公倍【入門】
阿新 • • 發佈:2018-12-13
公約公倍 輸入兩個正整數,求其最大公約數和最小公倍數。 輸入格式 每行輸入兩個正整數 a,b(1≤a,b≤10^4)。 輸出格式 輸出兩行,分別是 a,b的最大公約數和最小公倍數。 樣例輸入 2 3 樣例輸出 1 6
問題連結:JSK-391 公約公倍 問題描述:(略) 問題分析: 這是一個數論問題,計算最大公約數是用歐幾里德演算法實現的,而且是遞迴實現。最小公倍數則根據數論中的公式進行計算。 程式說明:(略) 參考連結:(略) 題記: 數論問題是常見的程式設計問題。 功能封裝到函式。
AC的C語言程式如下:
/* JSK-391 公約公倍 */
#include <stdio.h>
int gcd(int m, int n)
{
return n == 0 ? m : gcd(n, m % n);
}
int lcm(int m, int n)
{
return m / gcd(m, n) * n ;
}
int main(void)
{
int a, b;
while(~scanf("%d%d", &a, &b))
printf("%d\n%d\n", gcd(a, b), lcm(a, b));
return 0;
}