smooth waters run deep

공부내용/알고리즘

최대공약수 & 최소공배수

yeon_11 2020. 11. 22. 15:14

예) 21, 72 의 최대공약수 & 최소공배수 구하기

 

① 최대공약수

    72 % 21 = 9

    21 % 9 = 3

    9 % 3 = 0

    ∴ 최대공약수 = 3

 

② 최소공배수

    (21 * 72) / 최대공약수

    = (21*72)/3 = 504

    ∴ 최소공배수 = 504

 

 

 

 

 

코드구현

public static void main(String[] args){
	int x = 21;
    int y = 72;
    
    int gcd = makegcd(x,y);
    System.out.println("최대공약수 : " + gcd);
    
    int lcd = (x*y) / gcd;
    System.out.println("최소공배수 : " + lcd);
}
    
private int makegcd(int x, int y){
	while(x>0){
    	int temp = y%x;
        y = x;
        x = temp;
	}
    
    return y;
}

 

'공부내용 > 알고리즘' 카테고리의 다른 글

외판원 순회 문제 (TSP) (BOJ_2098)  (0) 2020.11.29
플로이드-와샬 알고리즘 (Floyd's Algorithm)  (0) 2020.11.26
조합 nCr  (0) 2020.11.11
순열 nPr  (0) 2020.11.11
부분집합  (0) 2020.11.08