[λ°±μ€2609]-μ΅λ곡μ½μμ μ΅μ곡배μ(C++)/μ ν΄λ¦¬λ νΈμ λ²
https://www.acmicpc.net/problem/2609
2609λ²: μ΅λ곡μ½μμ μ΅μ곡배μ
첫째 μ€μλ μ λ ₯μΌλ‘ μ£Όμ΄μ§ λ μμ μ΅λ곡μ½μλ₯Ό, λμ§Έ μ€μλ μ λ ₯μΌλ‘ μ£Όμ΄μ§ λ μμ μ΅μ 곡배μλ₯Ό μΆλ ₯νλ€.
www.acmicpc.net
μ ν΄λ¦¬λ νΈμ λ²
μ ν΄λ¦¬λ νΈμ λ²μ κ³Όμ μ μλμ κ°λ€.
- ν° μ«μλ₯Ό μμ μ«μλ‘ modμ°μ°μ νλ€.
- μμ μ«μλ₯Ό 1λ²μμ ꡬν λλ¨Έμ§ modμ°μ°μ νλ€.
- μ κ³Όμ μ modμ°μ°μ κ²°κ³Όκ° 0μ΄ λμ¬λ κΉμ§ κ³μ λ°λ³΅νλ€.
- μ΄λ λλλ μλ‘ μ¬μ©λ μκ° λ μμ μ΅λ곡μ½μκ° λλ€.
μ κ³Όμ μ μ΄μ©ν΄μ 1428κ³Ό 833μ μ΅λ곡μ½μλ₯Ό ꡬν΄λ³΄λλ‘ νμ.
modμ°μ°μ κ²°κ³Όκ° 0μ΄ λ λ λλλ μλ 119μμΌλ 1428κ³Ό 833μ μ΅λ곡μ½μλ 119μ΄λ€. μ΄λ₯Ό μ½λλ‘ κ΅¬ννλ©΄ μλμ κ°λ€.
int gcd(int a, int b) {
int c = a % b;
while (c != 0) {
a = b;
b = c;
c = a % b;
}
return b;
}
μ΅μ곡배μ ꡬνκΈ°
μ΅λ곡μ½μλ₯Ό ꡬνκΈ°λ₯Ό μλ£νλ€λ©΄ μ΅μ곡배μλ₯Ό ꡬνλ κ²μ κ°λ¨νλ€. μνμ μΌλ‘ μ΅λ곡μ½μμ μ΅μ곡배μμ κ³±μ λ μμ κ³±κ³Ό κ°κΈ° λλ¬Έμ΄λ€.
μ΅λ곡μ½μ*μ΅μ곡배μ = λ μμ κ³±
μ¦ μλμ κ°μ΄ ꡬν μ μλ€.
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
μ 체 μ½λ
μμμ λ¬Έμ κ° μꡬνλλ‘ λ μλ₯Ό μ λ ₯λ°μ μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό μΆλ ₯νλ μ½λλ μλμ κ°λ€.
#include <iostream>
using namespace std;
int gcd(int a, int b) {
int c = a % b;
while (c != 0) {
a = b;
b = c;
c = a % b;
}
return b;
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int n1, n2;
cin >> n1 >> n2;
cout << gcd(n1, n2) << "\n" << lcm(n1, n2);
}