0005 : GCD and LCM
解説
2つの正の整数a,bの最大公約数(GCD)と最小公倍数(LCM)を求める。
LCMはGCDを用いて計算することができるので、まずはGCDを先に求める。
GCDを求める方法にはユークリッドの互除法がある。→
ユークリッドの互除法 - Wikipedia
次に、LCMは「a / (a,bのGCD) * b」という式で求めることができる。
プログラム
C
C++
|
+
|
... |
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (a < b) {
int c = a;
a = b;
b = c;
}
while (b != 0) {
int c = a % b;
a = b;
b = c;
}
return a;
}
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
int main() {
int a, b;
while (cin >> a >> b) {
cout << gcd(a, b) << " " << lcm(a, b) << endl;
}
return 0;
}
|
Java
最終更新:2012年12月16日 17:45