N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다.
예를 들어 2와 7의 최소공배수는 14가 됩니다.
정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다.
nlcm 함수를 통해 n개의 숫자가 입력되었을 때, 최소공배수를 반환해 주세요.
예를들어 [2,6,8,14] 가 입력된다면 168을 반환해 주면 됩니다.
class NLCM {
public long nlcm(int[] num) {
long answer = 0;
long temp=num[0];
for(int i=0; i<num.length-1; i++) {
temp = lcm(temp, num[i+1]);
}
answer = temp;
return answer;
}
public static long gcd(long a, long b) {
long tmp;
while (b != 0) {
tmp = b;
b = a % b;
a = tmp;
}
return a;
}
public static long lcm(long a, long b) {
if (a <= 0 || b <= 0) { return -1; }
return a * b / gcd(a, b);
}
public static void main(String[] args) {
NLCM c = new NLCM();
int[] ex = { 2, 6, 8, 14 };
System.out.println(c.nlcm(ex));
}
}
'프로그래밍 > 자바' 카테고리의 다른 글
[자바] 콜라츠 추측 (0) | 2018.04.05 |
---|---|
[자바] 하샤드수 (0) | 2018.04.04 |
[자바] 멀리 뛰기 (0) | 2018.04.04 |
[자바] 숫자의 표현 (0) | 2018.04.03 |
[자바] 하노이의 탑 (1) | 2018.04.03 |