원하는 만큼의 개수만큼의 정수들의 최소공배수
- In JAVA -
저번 포스팅에서 원하는 수만큼의 정수들의 최대공약수를 구했다면
이번에는 최소공배수(least common multiple)를 구하는 방법 또한 알아볼 것이다.
우선 최소공배수를 구하려면 최대공약수를 먼저 알아야 한다.
어떠한 방법으로 최소공배수를 구하는지 그림으로 먼저 설명하겠다.
위의 세 수 24, 48, 8의 최소공배수를 구한다고 해보자
그럼 먼저 이 세 수들의 최대공약수를 구한다. (최대공약수 = 8)
최대공약수의 값을 얻은 다음 다음의 공식으로 최소공배수를 구할 수 있다.
즉 24*48*8 을 한 값을 ((최대공약수)^정수의 개수 - 1) 이 값으로 나눈 값이 최소공배수이다.
즉 저 예시로 보면
따라서 예제의 최소공배수의 값은 144가 되는 것이다.
그럼 위의 공식을 이용해 프로그램을 만들어 보도록 하겠다.
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 | // 이전 시간에 만든 최대공약수 구하는 프로그램으로 // 정수의 개수 num, 최대공약수 값 gdc를 얻은 상태에서 // 이어서 작성하는 코드입니다. // 제곱값 반환하는 함수입니다. static int getSquare (int gdc, int num) { int intSquare = gdc; for (int i = 0; i < num; i++) { intSquare *= intSquare; } return intSquare; } public class GetLCM { public static void main(String[] args) { // 사용자에게 입력받은 정수들의 곱을 구한다. int mulInteger = 1; for (int i = 0; i < num; i++){ mulInteger *= arr[i]; } // num - 1 : 정수의 개수-1승만큼 제곱해야 하기 때문에 int Lcm = (mulInteger / getSquare(gdc, num - 1)); System.out.println("정수들의 최대공약수: " +gdc); System.out.println("정수들의 최소공배수: " +Lcm); } } | cs |
이 코드는 이전시간에 최대공약수 구하기 코드에서 이어쓰는 코드이며,
정수들이 저장된 배열 : arr, 최대공약수의 값이 저장된 변수 : gdc, 정수들의 개수 : num
이러한 요소들을 생각하며 봐주길 바란다.
'Try Programs' 카테고리의 다른 글
선형 회귀 다음 값 예측 웹 애플리케이션 (Tensorflow.js) (0) | 2021.02.05 |
---|---|
원하는 개수의 정수들의 최대공약수 출력 (JAVA) (0) | 2019.02.15 |
솔플 테트리스 만들기 2 (0) | 2019.01.31 |
솔플 테트리스를 만들어보자 1 (0) | 2019.01.29 |
똥 피하기 (간단한 콘솔게임) (코드 저장겸 포스팅) (0) | 2019.01.23 |