유클리드 호제법
: 두 정수의 최대공약수(모두를 나눌 수 있는 최댓값)을 구하는 알고리즘
호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다.
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 |
---|
댓글