최대공약수와 최소공배수
x두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다.예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다.
최대공약수는 두 수의 약수 중 가장 큰 값이다. 나처럼 처음부터 돌리지 않고 a부터 내려가면서 찾아서 공약수가 발견되면 바로 break를 써서 빠져나오게 해도 된다.
두 수를 곱한 값에서 최대공약수를 나누어주면 최소공배수가 된다.
xxxxxxxxxximport java.util.Arrays;class TryHelloWorld { public int[] gcdlcm(int a, int b) { int[] answer = new int[2]; if (a < b) { int temp = a; a = b; b = temp; } for(int i = 1; i <= a; i++){ if(a % i == 0 && b % i == 0) answer[0] = i; } answer[1] = a * b / answer[0]; return answer; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { TryHelloWorld c = new TryHelloWorld(); System.out.println(Arrays.toString(c.gcdlcm(15, 12))); }}
'공부 > algorithm' 카테고리의 다른 글
| [programmers] 피보나치 수 (0) | 2018.05.21 |
|---|---|
| [programmers] 짝수와 홀수 (0) | 2018.05.21 |
| [programmers] 수박수박수박수박수박수? (0) | 2018.05.21 |
| [programmers]최대값과 최소값 (0) | 2018.05.21 |
| [programmers] 평균구하기 (0) | 2018.05.21 |
댓글