최대공약수와 최소공배수
x두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다.
예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다.
최대공약수는 두 수의 약수 중 가장 큰 값이다. 나처럼 처음부터 돌리지 않고 a부터 내려가면서 찾아서 공약수가 발견되면 바로 break
를 써서 빠져나오게 해도 된다.
두 수를 곱한 값에서 최대공약수를 나누어주면 최소공배수가 된다.
xxxxxxxxxx
import 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 |
댓글