English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 프로그램에서는 Java 프로그램에서 두 수의 최대 공약수(GCD)를 찾는 방법을 배웁니다. 이는 if else 문의 도움으로 for와 while 루프를 사용하여 완료됩니다.
두 정수의 HCF 또는 GCD는 두 수를 정확하게 나누는(나머지 없음) 가장 큰 정수입니다.
public class GCD { public static void main(String[] args) { int n1 = 81, n2 = 153, gcd = 1; for(int i = 1; i <= n1 && i <= n2; ++i) { // i가 두 정수의 공약수인지 확인합니다 if(n1 % i==0 && n2 % i==0) gcd = i; } System.out.printf(" %d 과 %d 의 최대 공약수는 %d", n1, n2, gcd); } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
81 와 153 의 최대 공약수는 9
이제, 최대 공약수를 가진 두 숫자를 각각 n1와 n2중
그런 다음, i가 n보다 작을 때까지 for 루프를 실행합니다1와 n2까지 합니다. 이렇게 하면, 반복1두 숫자 중 가장 작은 모든 숫자를 찾아 최대 공약수를 구합니다.
n1와 n2모든 수가 i로 나누어지면 gcd를 숫자로 설정합니다. 가장 큰 수(GCD)를 찾을 때까지 진행합니다. 이 수는 n1와 n2로 나누면 나머지가 없습니다.}}
이 문제를 while 루프를 사용하여 해결할 수도 있습니다. 다음과 같이 표현할 수 있습니다:
public class GCD { public static void main(String[] args) { int n1 = 81, n2 = 153; while(n1 != n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } System.out.println("G.C.D = " + n1); } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
G.C.D = 9
GCD를 찾는 더 나은 방법입니다. 이 방법에서는 큰 정수에서 작은 정수를 뺄 수 있으며, 그 결과를 큰 정수를 저장하는 변수에 할당합니다. 이 과정은 n1와 n2일치합니다.
사용자가 양수만 입력할 때만 위 두 프로그램이 예상대로 작동합니다. 두 번째 예제의 일부 수정을 통해 양수와 음수의 GCD를 찾을 수 있습니다.
public class GCD { public static void main(String[] args) { int n1 = 81, n2 = -153; n1 = ( n1 > 0) ? n1 : -n1; n2 = ( n2 > 0) ? n2 : -n2; while(n1 != n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } System.out.println("G.C.D = " + n1); } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
G.C.D = 9