본문 바로가기
SIDES/Algorithm

[Algorithm] 유클리드 호제법

by Jelly 젤리 2022. 3. 12.

유클리드 호제법

: 두 정수의 최대공약수(모두를 나눌 수 있는 최댓값)을 구하는 알고리즘

호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다.
2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지
를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다.

1. 두 정수의 큰 쪽에서 작은 쪽을 빼는 것을, 양쪽이 같아질 때까지 반복

2. 같아진 값이 최대공약수가 된다.

 

세로 150* 가로 100의 사각형 -> 10 * 10의 정사각형을 잘라내는 과정

세로와 가로로 긴 변을 잘라내가는 과정.

import java.util.Scanner;

public class EuclidAlgorithm{
	public static void main(String[]args){
    Scanner sc = new Scanner(System.in);
    int num1, num2;
    
    System.out.print("첫 번째 수를 입력하세요:")
    num1 = sc.nextInt();
    System.out.print("두 번째 수를 입력하세요:")
    num2 = sc.nextInt();
	sc.close();
    
    while(num1 != num2){
    	if(num1 > num2){
        num1 -= num2;
    	} else {
        num1 -= num2;
        }
    }
    
    System.out.println("두 수의 최대공약수는: "+num1+"입니다.");
    
   }
}

728x90

'SIDES > Algorithm' 카테고리의 다른 글

[Algorithm] 선형 검색 Sequential Search  (0) 2022.03.12

댓글