알고리즘 문제풀이
[코드업] 함수로 최소공배수 리턴하기(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 == 0) return 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(192, 72) << endl;
return 0;
}
|
cs |
반응형