2개의 값에 대하여 gcd를 이용해 lcm을 구하는 것을 N개에 대해 반복함

 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
public class NLCM {
    public long gcd(long a,long b) {
        if(a==0)
            return b;
        else
            return gcd(b%a,a);      
    }
    public long lcm(long a,long b) {
        return a*b/gcd(a,b);        
    }   

    public long nlcm(int[] num) {
        long answer=num[0];
        for(int i=0;i<num.length-1;i++) {
            answer = lcm(answer,num[i+1]);
        }
        return answer;
    }

    public static void main(String[] args) {
        NLCM c = new NLCM();
        int[] ex = { 2, 6, 8, 14 };
        // 아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.println(c.nlcm(ex));
    }
}