λ¬Έμ
λ κ°μ μμ°μλ₯Ό μ λ ₯λ°μ μ΅λ곡μ½μ(GCD)μ μ΅μ곡배μ(LCM)λ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μλ λ κ°μ μμ°μκ° μ£Όμ΄μ§λ€. μ΄ λμ 10,000 μ΄νμ μμ°μμ΄λ©° μ¬μ΄μ ν μΉΈμ κ³΅λ°±μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μλ μ λ ₯μΌλ‘ μ£Όμ΄μ§ λ μμ μ΅λ곡μ½μλ₯Ό, λμ§Έ μ€μλ μ λ ₯μΌλ‘ μ£Όμ΄μ§ λ μμ μ΅μ곡배μλ₯Ό μΆλ ₯νλ€.
#include <iostream>
using namespace std;
int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
cout << lcm(a, b);
}
λ μκ° μ£Όμ΄μ§λ©΄ μ΅λ곡μ½μ(GCD)μ μ΅μ곡배μ(LCM)μ ꡬνλ λ¬Έμ μ λλ€. μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό ꡬνλ λ¬Έμ λ λ무 νν©λλ€. μ λͺ¨λ₯΄μ λ€λ©΄ μ΄λ² κΈ°νμ μ½λλ₯Ό κΌ κΌΌκΌΌνκ² λ΄μ λ‘μ§μ μ΄ν΄νκΈΈ λ°λλλ€.
μ΅λ곡μ½μλ λ μμ λλ¨Έμ§ μ°μ°μ μ¬μ©νμ¬ κ°λ¨νκ² κ΅¬ν μ μμ΅λλ€. λλ¨Έμ§ μ°μ°μ μ΄μ©νλ μ λ°©μμ μΌλͺ 'μ ν΄λ¦¬λ νΈμ λ²'μ΄λΌκ³ λ ν©λλ€.
μ ν΄λ¦¬λ νΈμ λ² (μΆμ²)
- μ λ ₯μΌλ‘ λ μ m,n(m>n)μ΄ λ€μ΄μ¨λ€.
- nμ΄ 0μ΄λΌλ©΄, mμ μΆλ ₯νκ³ μκ³ λ¦¬μ¦μ μ’ λ£νλ€.
- mμ΄ nμΌλ‘ λλμ΄ λ¨μ΄μ§λ©΄, nμ μΆλ ₯νκ³ μκ³ λ¦¬μ¦μ μ’ λ£νλ€.
- κ·Έλ μ§ μμΌλ©΄, mμ nμΌλ‘ λλ λλ¨Έμ§λ₯Ό μλ‘κ² mμ λμ νκ³ , mκ³Ό nμ λ°κΎΈκ³ 3λ²μΌλ‘ λμμ¨λ€.
μ κ³Όμ μ “n, mμ λν΄μ λλ¨Έμ§ μ°μ°μ μ€μν μ μλ€”λΌλ 쑰건μλ§ μμ‘΄νλ―λ‘, μ μνλΏ μλλΌ, μμμ μ ν΄λ¦¬λ μ μμ λν΄λ λκ°μ κ³Όμ μ κ±°μΉλ©΄ 곡μ½μΈμκ° κ΅¬ν΄μ§λ€.
int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
μ΅μ곡배μλ μμ ꡬν μ΅λ곡μ½μλ₯Ό νμ©νμ¬ ν μ μλ€λ κ²μ κΈ°μ΅νλ©΄ λ€μμ ꡬνν λ λμμ΄ λ©λλ€.
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
'π Algorithm > Solved' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ³ λ¦¬μ¦ λ©μ€] rook (C++, μμ νμ) (0) | 2020.07.09 |
---|---|
[μκ³ λ¦¬μ¦ μ‘μ€] max of arr (C++, μμ νμ) (0) | 2020.07.09 |
[μκ³ λ¦¬μ¦ μ‘μ€] μμ κΎΈλ―ΈκΈ° (C++, μμ νμ) (0) | 2020.07.09 |
[μκ³ λ¦¬μ¦ μ‘μ€] offset (C++, μμ νμ) (0) | 2020.07.07 |
[μκ³ λ¦¬μ¦] Algorithm μ΄λ? (μκ° λ³΅μ‘λ, λΉ μ€ νκΈ°λ²) (0) | 2020.04.18 |