C# Coding Test Course, Finding the Greatest Common Divisor

Algorithm problems are one of the important areas of study for many people preparing for employment. In this course, we will explore how to find the Greatest Common Divisor (GCD) using C#. The GCD is the largest number that divides two integers with a remainder of 0.

Problem Description

Given two integers A and B, find the GCD of these two numbers.

Example Input:
A = 48, B = 18

Example Output:
GCD = 6

Concept of Greatest Common Divisor

The GCD refers to the largest integer that divides two or more integers without leaving a remainder. For example, the divisors of 48 and 18 are 1, 2, 3, 6, 9, and 18. The largest of these, 6, is the GCD of the two numbers.

Algorithm to Find GCD

There are various methods to find the GCD, but here we will explain the method using the Euclidean algorithm. This method follows these steps:

  1. Given two integers A and B, repeat the following as long as B is not 0.
  2. Calculate the remainder of A divided by B. (i.e., R = A % B)
  3. Replace A with B, and B with R.
  4. Repeat this process until B becomes 0.
  5. When B becomes 0, A is the GCD.

C# Code Implementation

Now, let’s implement the above algorithm in C#. The code below is a simple program to find the GCD.


using System;

class Program
{
    static void Main(string[] args)
    {
        Console.Write("Enter A: ");
        int A = int.Parse(Console.ReadLine());

        Console.Write("Enter B: ");
        int B = int.Parse(Console.ReadLine());
        
        int gcd = GetGCD(A, B);
        Console.WriteLine($"The Greatest Common Divisor (GCD) is: {gcd}");
    }

    static int GetGCD(int a, int b)
    {
        while (b != 0)
        {
            int r = a % b;
            a = b;
            b = r;
        }
        return a;
    }
}

The above code prompts the user to input two integers A and B, and calculates the GCD by calling the GetGCD method.

Code Explanation

using System; : Uses the System namespace to handle console input and output.
Main method : The starting point of the program, which takes two integers from the user.
GetGCD method : Calculates the GCD using the Euclidean algorithm. This method takes two integers as arguments and finds the GCD through a loop.

Execution Example

Let’s take a look at the execution results. When the user inputs the numbers 48 and 18:

Enter A: 48
Enter B: 18
The Greatest Common Divisor (GCD) is: 6

Testing and Exception Handling

When using the actual program, it is essential to test various inputs. Exception handling should be considered for cases where non-integer values are entered. The code below is an example with added exception handling.


using System;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            Console.Write("Enter A: ");
            int A = int.Parse(Console.ReadLine());

            Console.Write("Enter B: ");
            int B = int.Parse(Console.ReadLine());
            
            int gcd = GetGCD(A, B);
            Console.WriteLine($"The Greatest Common Divisor (GCD) is: {gcd}");
        }
        catch (FormatException)
        {
            Console.WriteLine("Please enter a valid integer.");
        }
    }

    static int GetGCD(int a, int b)
    {
        while (b != 0)
        {
            int r = a % b;
            a = b;
            b = r;
        }
        return a;
    }
}

In the above code, a try-catch block is used to handle cases where the input is not an integer. If a FormatException occurs, the user is prompted to enter a valid integer.

Conclusion and Additional Learning Resources

In this course, we implemented an algorithm to find the GCD using C# and introduced a method based on the Euclidean algorithm. Algorithm problems can greatly assist in employment preparation, so it is recommended to continuously practice various problems. In the future, we will cover other algorithm problems.

For additional recommended learning resources, here are some websites:

  • GeeksforGeeks – A variety of data structure and algorithm problem solutions
  • LeetCode – A platform for coding tests and algorithm problem solutions
  • HackerRank – A site for algorithm problems and coding tests

Feedback and Questions

If you have any feedback or questions regarding this course, please feel free to leave a comment. I will do my best to respond. Thank you!