자바 Java, 최소공배수 구하기 함수; LCM; Least Common Multiple
Friday, April 20, 2007
스폰서 링크자바에서, 최소공배수를 구하는 방법입니다. 아래 예제의 "public static long lcm(long a, long b)" 메서드(함수)를 사용합니다. 그런데 최소공배수를 구하려면 최대공약수도 구해야 하기에, 아래의 gcd() 메서드도 필요합니다.
소스 파일명: Example.java
▶▶ Java 자바] 최대 공약수 구하기 함수; gcd, Greatest Common Divisor Method
최소공배수 계산기 (온라인 버전): ▶▶ 최소공배수 계산기; LCM 구하기 Calc
☞ 자바 | Java
☞ 학습
최소 공배수 계산 예제 소스
소스 파일명: 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
☞ 자바 | Java
☞ 학습
Post a Comment
<< Home