개발 알다가도 모르겠네요

유클리드 호제법을 간단하게 알아보자. 본문

자료구조/알고리즘

유클리드 호제법을 간단하게 알아보자.

이재빵 2021. 1. 18. 19:21
728x90

유클리드 호제법은 두 수의 최대공약수를 구하는 알고리즘입니다.

 

호제법이란 두 수가 서로 상대방 수를 나누어서 원하는 수를 얻는 방법을 말합니다.

 

 

구현과정

import java.util.*;
public class Main{
	public static int gcd(int a, int b) {              //유클리드 호제법
		if(b==0)
			return a;
		else
			return gcd(b,a%b);
	}
	
	public static int lcm(int a, int b) {
		return a*b/gcd(a,b);
	}
	
	public static void main(String[] args) {	
		Scanner scan= new Scanner(System.in);
		int a= scan.nextInt();
		int b= scan.nextInt();
		int gcd=0;
		int lcm=0;
		
		if(a<b) {
			int temp=a;
			a=b;
			b=temp;
		}
		
		/*for(int i=b; i>=1; i--) {      //원래의 방법
			if(b%i==0 && a%i==0) {        //최대공약수
				gcd=i;
				break;
			}
		}	
		lcm=a*b/gcd;          //최소공배수
		
		System.out.println(gcd);
		System.out.println(lcm); */
		
		System.out.println(gcd(a,b));
		System.out.println(lcm(a,b));
		}
		}