알고리즘 문제풀이

[코드업] 함수로 최소공배수 리턴하기(C++)

도리컴 2023. 2. 28. 23:41
반응형

최소공배수는 두 수의 곱 / 최대공약수 임을 떠올려야함

그리고, gcd구하는 법 아주 쉽게 구현가능(유클리드호제법)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
 
using namespace std;
 
/*
<문제>
int형 자연수 두개를 받아서 최소공배수 출력
함수 lcm()만 작성해서 제출하기
 
<입력>
두개의 int형 자연수(모두 2147483647이하)
 
<출력>
두 수의 최소공배수
 
<풀이>
최대공약수 구하는 알고리즘으로 최대공약수를 구하고,
두 수 곱한 결과에 최대공약수 나눠서 출력하면 됨
 
*/
int gcd(int p, int q) { if (p == 0return q; return gcd(q % p, p); }
long long int lcm(int p, int q) {
    return (long long int)p * q / gcd(p, q);
}
 
int main() {
    cout << lcm(19272<< endl;
    return 0;
}
cs

 

반응형