코테/프로그래머스
프로그래머스 최대공약수와 최소공배수
65살까지 코딩
2022. 1. 16. 23:10
728x90
반응형
class Solution {
public int[] solution(int n, int m) {
if( n > m){
int temp = n;
n = m;
m = temp;
}
System.out.println(mindiv(n,m));
System.out.println(maxmul(n,m));
int[] answer = {mindiv(n,m), maxmul(n,m)};
return answer;
}
//유클리드 호제법을 사용하면 코드를 짧게 구성할 수 있지만 (재귀 방식으로)
//그냥 직관적으로 짜봄
//n<m
public int maxmul(int n, int m){
int old_m = m;
//최소 공배수는 가장 작으면서 두 수로 나눠져야 하기 떄문 반복문으로 해결
while(true){
if(m%old_m ==0 && m%n ==0){
return m;
}
m++;
}
}
//n <m
public int mindiv(int n, int m){
int go =0;
// 최대 공약수 우리가 흔히 생각하는 방법
for(int i=1; i<=n; i++){
if(n%i ==0 && m%i ==0){
go = i;
}
}
return go;
}
}
출처 : https://programmers.co.kr/learn/courses/30/lessons/12940
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
728x90
반응형