SHOW ALL YOUR WORK. REMEMBER THAT PROGRAM SEGMENTS ARE TO BE WRITTEN IN JAVA.

Assume that the classes listed in the Java Quick Reference have been imported where appropriate.
Unless otherwise noted in the question, assume that parameters in method calls are not null and that methods are called only when their preconditions are satisfied.
In writing solutions for each question, you may use any of the accessible methods that are listed in classes defined in that question. Writing significant amounts of code that can be replaced by a call to one of these methods will not receive full credit.
 
This question involves computing the greatest common factor between two positive integers and using greatest common factors to reduce fractions. You will write two methods in the NumberSystem class that follows.

public class NumberSystem

{

/\*\* Precondition: a and b are positive integers.

\* Returns the greatest common factor of a and b, as described in part (a).

\*/

public static int gcf(int a, int b)

{ /\* to be implemented in part (a) \*/ }

 

/\*\* Precondition: numerator and denominator are positive integers.

\* Reduces the fraction numerator / denominator

\* and prints the result, as described in part (b).

\*/

public static void reduceFraction(int numerator, int denominator)

{ /\* to be implemented in part (b) \*/ }

}

The greatest common factor (GCF) of two integers a and b is the largest integer that divides evenly into both a and b. For example, the GCF of 8 and 12 is 4.

The greatest common factor can be computed using the following rules.

Case I: If a is evenly divisible by b, then the GCF is b.
Case II: If a is not evenly divisible by b, then the GCF of a and b is equal to the GCF of b and the remainder when a is divided by b.
If the rule in case II is repeatedly applied, it is guaranteed to eventually result in case I. Consider the following examples.

Example 1
In determining the GCF of 30 and 3, case I applies because 30 is evenly divisible by 3. Therefore, the GCF of 30 and 3 is 3.
Example 2
In determining the GCF of 3 and 30, case II applies because 3 is not evenly divisible by 30. The GCF of 3 and 30 will be equal to the GCF of 30 and the remainder when 3 is divided by 30, or 3.
In determining the GCF of 30 and 3, case I applies because 30 is evenly divisible by 3. The GCF of 30 and 3 is 3, and therefore the GCF of 3 and 30 is also 3.
Example 3
In determining the GCF of 24 and 9, case II applies because 24 is not evenly divisible by 9. The GCF of 24 and 9 will be equal to the GCF of 9 and the remainder when 24 is divided by 9, or 6.
In determining the GCF of 9 and 6, case II applies because 9 is not evenly divisible by 6. The GCF of 9 and 6 will be equal to the GCF of 6 and the remainder when 9 is divided by 6, or 3.
In determining the GCF of 6 and 3, case I applies because 6 is evenly divisible by 3. The GCF of 6 and 3 is 3, and therefore the GCF of 24 and 9 is also 3.
Example 4
In determining the GCF of 7 and 3, case II applies because 7 is not evenly divisible by 3. The GCF of 7 and 3 will be equal to the GCF of 3 and the remainder when 7 is divided by 3, or 1.
In determining the GCF of 3 and 1, case I applies because 3 is evenly divisible by 1. The GCF of 3 and 1 is 1, and therefore the GCF of 7 and 3 is also 1.
 

(a) The gcf method returns the greatest common factor of parameters a and b, as determined by case I and case II. Write the gcf method below. You are encouraged to implement this method recursively.

/\*\* Precondition: a and b are positive integers.

\* Returns the greatest common factor of a and b, as described in part (a).

\*/

public static int gcf(int a, int b)
모든 작업이 어떻게 진행되는지. 프로그램 세그먼트는 Java로 작성해야 한다는 점을 기억하세요.Java 빠른 참조에 나열된 클래스를 적절한 경우 가져왔다고 가정합니다.문제에서 달리 명시하지 않는 한, 메서드 호출의 매개변수는 널이 아니며 전제 조건이 충족될 때만 메서드가 호출된다고 가정합니다.각 문제에 대한 해결책을 작성할 때, 해당 문제에 정의된 클래스에 나열된 접근 가능한 메서드 중 하나를 사용할 수 있습니다. 이러한 메서드 중 하나에 대한 호출로 대체할 수 있는 상당한 양의 코드를 작성하면 전체 점수를 받을 수 없습니다. 이 문제는 두 양의 정수 사이의 최대 공약수를 계산하고 최대 공약수를 사용하여 분수를 줄이는 문제입니다. 다음 NumberSystem 클래스에서 두 개의 메서드를 작성합니다.public class NumberSystem{/\*\* 전제 조건: a와 b는 양의 정수입니다.\* 부분 (a)에서 설명한 대로 a와 b의 최대공약수를 반환합니다.\*/공용 정적 int gcf(int a, int b){ /\* 부분 (a)에서 구현할 \*/ } /\*\* 전제 조건: 분자와 분모는 양의 정수입니다.\* 분수 분자/분모를 줄이고\*를 줄이고 부분 (b)에 설명된 대로 결과를 출력합니다.\*/{ /\* 부분 (b)에서 구현될 \*/ }}두 정수 a와 b의 최대공약수(GCF)는 a와 b를 모두 균등하게 나누는 가장 큰 정수입니다. 예를 들어, 8과 12의 GCF는 4입니다.최대공약수는 다음 규칙을 사용하여 계산할 수 있습니다.사례 I: a를 b로 균등하게 나눌 수 있는 경우 GCF는 b입니다.사례 II: a를 b로 균등하게 나눌 수 없는 경우, a와 b의 GCF는 a를 b로 나눈 나머지의 GCF와 같습니다.사례 II의 규칙을 반복적으로 적용하면 결국 사례 I이 될 수 있습니다. 다음 예를 고려하세요.예제 130과 3의 GCF를 결정할 때 30은 3으로 균등하게 나눌 수 있으므로 사례 I이 적용됩니다. 따라서 30과 3의 GCF는 3이 됩니다.예제 23과 30의 GCF를 결정할 때 3은 30으로 균등하게 나눌 수 없으므로 사례 II가 적용됩니다. 3과 30의 GCF는 3을 30으로 나눈 값, 즉 3을 30으로 나눈 값과 나머지의 GCF가 같습니다.30과 3의 GCF를 결정할 때 30은 3으로 균등하게 나눌 수 있으므로 사례 I이 적용됩니다. 30과 3의 GCF는 3이므로 3과 30의 GCF도 3입니다.예 324와 9의 GCF를 결정할 때 24는 9로 균등하게 나눌 수 없으므로 사례 II가 적용됩니다. 24와 9의 GCF는 24를 9로 나누면 9의 GCF와 같고 나머지는 6이 됩니다.9와 6의 GCF를 결정할 때 9를 6으로 균등하게 나눌 수 없으므로 사례 II가 적용됩니다. 9와 6의 GCF는 9를 6 또는 3으로 나눈 나머지의 GCF와 같게 됩니다.6과 3의 GCF를 결정할 때 6은 3으로 균등하게 나눌 수 있으므로 사례 I이 적용됩니다. 6과 3의 GCF는 3이며, 따라서 24와 9의 GCF도 3입니다.예 47과 3의 GCF를 결정할 때 7은 3으로 균등하게 나눌 수 없으므로 사례 II가 적용됩니다. 7과 3의 GCF는 7을 3으로 나눈 값, 즉 1과 나머지가 3의 GCF와 같게 됩니다.3과 1의 GCF를 결정할 때 3은 1로 균등하게 나눌 수 있기 때문에 사례 I이 적용됩니다. 3과 1의 GCF는 1이므로 7과 3의 GCF도 1입니다. (a) gcf 메서드는 사례 I과 사례 II에 의해 결정된 매개 변수 a와 b의 최대공약수를 반환합니다. 아래에 gcf 메서드를 작성하십시오. 이 메서드를 재귀적으로 구현하는 것이 좋습니다./\*\* 전제 조건: a와 b는 양의 정수입니다.\* 부분 (a)에서 설명한 대로 a와 b의 최대 공약수를 반환합니다.\*/공용 정적 int gcf(int a, int b)