Friday, April 20, 2007
자바 Java, 최소공배수 구하기 함수; LCM; Least Common Multiple
자바에서, 최소공배수를 구하는 방법입니다. 아래 예제의 "public static long lcm(long a, long b)" 메서드(함수)를 사용합니다. 그런데 최소공배수를 구하려면 최대공약수도 구해야 하기에, 아래의 gcd() 메서드도 필요합니다.
소스 파일명: Example.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
▶▶ Java 자바] 최대 공약수 구하기 함수; gcd, Greatest Common Divisor Method
최소공배수 계산기 (온라인 버전): ▶▶ 최소공배수 계산기; LCM 구하기 Calc
최소 공배수 계산 예제 소스
소스 파일명: Example.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
public class Example {
public static void main(String[] args) {
System.out.println(lcm(4, 6)); // 12
System.out.println(lcm(21, 6)); // 42
System.out.println(lcm(-5, -4)); // 20
System.out.println(lcm(-9, 2)); // 18
System.out.println(lcm(0, 0)); // 0
// 세 숫자의 최소공배수 구하기
long result = lcm(45, lcm(120, 75));
System.out.println(result); // 1800
// 네 숫자의 최소공배수 구하기
result = lcm(112, lcm(113, lcm(114, 119)));
System.out.println(result); // 12263664
}
// 최소 공배수 계산 메서드
// 최소공배수는 엄청나게 큰 숫자가 나올 수도 있기에
// long형으로 다루어야 합니다.
public static long lcm(long a, long b) {
int gcd_value = gcd((int)a, (int)b);
if (gcd_value == 0) return 0; // 인수가 둘다 0일 때의 에러 처리
return Math.abs( (a * b) / gcd_value );
}
// 최대 공약수 계산 함수; 최소 공배수 계산에 필요함
// 최대 공약수는 그리 큰 숫자가 나오지 않기에 int형으로
public static int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return Math.abs(a);
}
}
public static void main(String[] args) {
System.out.println(lcm(4, 6)); // 12
System.out.println(lcm(21, 6)); // 42
System.out.println(lcm(-5, -4)); // 20
System.out.println(lcm(-9, 2)); // 18
System.out.println(lcm(0, 0)); // 0
// 세 숫자의 최소공배수 구하기
long result = lcm(45, lcm(120, 75));
System.out.println(result); // 1800
// 네 숫자의 최소공배수 구하기
result = lcm(112, lcm(113, lcm(114, 119)));
System.out.println(result); // 12263664
}
// 최소 공배수 계산 메서드
// 최소공배수는 엄청나게 큰 숫자가 나올 수도 있기에
// long형으로 다루어야 합니다.
public static long lcm(long a, long b) {
int gcd_value = gcd((int)a, (int)b);
if (gcd_value == 0) return 0; // 인수가 둘다 0일 때의 에러 처리
return Math.abs( (a * b) / gcd_value );
}
// 최대 공약수 계산 함수; 최소 공배수 계산에 필요함
// 최대 공약수는 그리 큰 숫자가 나오지 않기에 int형으로
public static int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return Math.abs(a);
}
}
▶▶ Java 자바] 최대 공약수 구하기 함수; gcd, Greatest Common Divisor Method
최소공배수 계산기 (온라인 버전): ▶▶ 최소공배수 계산기; LCM 구하기 Calc
tag: java
자바 | Java
tag: study
학습 | Study
<< Home