본문 바로가기

자바

최대공약수 최소공배수 구하기

반응형


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
30
31
32
33
34
35
36
package javaalgorithm;
 
import java.util.Arrays;
 
class TryHelloWorld {
    public int[] gcdlcm(int a, int b) {
        int[] answer = new int[2];
        int tempa = a;
        int tempb = b;
        
        int mod = a%b;
        
        while(mod>0){
            a = b;
            b = mod;
            mod = a%b;
        }
        
        answer[0= b;
        
        int x,y;
        
        x = tempa/b;
        y = tempb/b;
        
        answer[1= b*x*y;
 
        return answer;
    }
 
    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        TryHelloWorld c = new TryHelloWorld();
        System.out.println(Arrays.toString(c.gcdlcm(312)));
    }
}
cs


처음에 푼 방법이다

유클리드 호제법을 이용하여 while문을 구성해 주었다.


밑에 방법은 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
package javaalgorithm;
 
import java.util.Arrays;
 
class TryHelloWorld2 {
    public int[] gcdlcm(int a, int b) {
        int[] answer = new int[2];
       
        answer[0= gcd(a,b);
        answer[1= a*b/answer[0];
 
        return answer;
    }
    
    public int gcd(int a,int b){
        if(a%b==0return b;
        else return gcd(b,a%b);
    }
 
    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        TryHelloWorld c = new TryHelloWorld();
        System.out.println(Arrays.toString(c.gcdlcm(312)));
    }
}
cs


'자바' 카테고리의 다른 글

피보나치 수  (0) 2016.11.19
행렬의 덧셈  (0) 2016.11.19
가운데 글자 가져오기  (0) 2016.11.17
시저암호  (0) 2016.11.17
나누어 떨어지는 숫자배열  (0) 2016.11.14