Bird
Raised Fist0
DSA C#programming~5 mins

GCD and LCM Euclidean Algorithm in DSA C# - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does GCD stand for and what does it represent?
GCD stands for Greatest Common Divisor. It is the largest number that divides two or more numbers without leaving a remainder.
Click to reveal answer
beginner
What is the Euclidean Algorithm used for?
The Euclidean Algorithm is a method to find the GCD of two numbers by repeatedly subtracting the smaller number from the larger one or using the remainder operation until the remainder is zero.
Click to reveal answer
intermediate
How is LCM related to GCD for two numbers a and b?
LCM (Least Common Multiple) and GCD are related by the formula: LCM(a, b) = (a * b) / GCD(a, b). This means the product of two numbers equals the product of their GCD and LCM.
Click to reveal answer
beginner
What is the base case in the Euclidean Algorithm for GCD?
The base case occurs when the second number becomes zero. At this point, the first number is the GCD.
Click to reveal answer
intermediate
Why is the Euclidean Algorithm efficient compared to checking all divisors?
Because it reduces the problem size quickly by using remainders, avoiding the need to check every possible divisor, which saves time especially for large numbers.
Click to reveal answer
What is the GCD of 48 and 18 using the Euclidean Algorithm?
A12
B6
C18
D24
Which formula correctly calculates LCM using GCD?
ALCM = (a * b) / GCD
BLCM = GCD / (a * b)
CLCM = a + b - GCD
DLCM = a - b + GCD
In the Euclidean Algorithm, what do you do when the remainder is not zero?
AStop and return the current number
BReplace the larger number with the smaller number
CReplace the larger number with the remainder and repeat
DAdd the two numbers and continue
What is the GCD of two prime numbers?
A1
BThe smaller prime
CThe larger prime
DTheir product
Why is the Euclidean Algorithm preferred for large numbers?
AIt uses addition only
BIt checks all divisors
CIt multiplies numbers repeatedly
DIt quickly reduces problem size using remainders
Explain how the Euclidean Algorithm finds the GCD of two numbers step-by-step.
Think about dividing and replacing numbers until you reach zero remainder.
You got /3 concepts.
    Describe the relationship between GCD and LCM and how you can calculate one if you know the other.
    Remember the product of two numbers equals the product of their GCD and LCM.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Euclidean algorithm primarily calculate between two numbers a and b?
      easy
      A. The difference between a and b
      B. The Greatest Common Divisor (GCD)
      C. The sum of a and b
      D. The Least Common Multiple (LCM)

      Solution

      1. Step 1: Understand the Euclidean algorithm purpose

        The Euclidean algorithm is designed to find the greatest common divisor (GCD) of two numbers by repeatedly applying the remainder operation.
      2. Step 2: Differentiate GCD from LCM

        While GCD finds the largest number dividing both, LCM finds the smallest number divisible by both. The Euclidean algorithm directly calculates GCD.
      3. Final Answer:

        The Greatest Common Divisor (GCD) -> Option B
      4. Quick Check:

        Euclidean algorithm = GCD [OK]
      Hint: Euclidean algorithm always finds GCD, not LCM [OK]
      Common Mistakes:
      • Confusing GCD with LCM
      • Thinking it calculates sum or difference
      • Assuming it finds prime factors directly
      2. Which of the following is the correct C# syntax to calculate the GCD of two integers a and b using the built-in method?
      easy
      A. int gcd = Math.GreatestCommonDivisor(a, b);
      B. int gcd = Math.GCD(a, b);
      C. int gcd = Math.gcd(a, b);
      D. int gcd = Math.Gcd(a, b);

      Solution

      1. Step 1: Identify the correct method name in C#

        The .NET 6+ Math class provides the method Math.Gcd(int, int) to calculate the greatest common divisor.
      2. Step 2: Check method name casing and spelling

        Method names in C# are PascalCase, so Math.Gcd is correct, while others are incorrect or do not exist.
      3. Final Answer:

        int gcd = Math.Gcd(a, b); -> Option D
      4. Quick Check:

        Correct method is Math.Gcd [OK]
      Hint: Use Math.Gcd with capital G and C# PascalCase [OK]
      Common Mistakes:
      • Using incorrect method names like Math.gcd or Math.GCD
      • Assuming method is GreatestCommonDivisor
      • Wrong casing causing compile errors
      3. What is the output of the following C# code?
      int a = 48;
      int b = 18;
      int gcd = Math.Gcd(a, b);
      int lcm = (a * b) / gcd;
      Console.WriteLine($"GCD: {gcd}, LCM: {lcm}");
      medium
      A. GCD: 18, LCM: 48
      B. GCD: 12, LCM: 72
      C. GCD: 6, LCM: 144
      D. GCD: 3, LCM: 288

      Solution

      1. Step 1: Calculate GCD of 48 and 18

        Using Euclidean algorithm: 48 % 18 = 12, 18 % 12 = 6, 12 % 6 = 0, so GCD = 6.
      2. Step 2: Calculate LCM using formula

        LCM = (48 * 18) / 6 = 864 / 6 = 144.
      3. Final Answer:

        GCD: 6, LCM: 144 -> Option C
      4. Quick Check:

        GCD=6, LCM=144 [OK]
      Hint: LCM = (a * b) / GCD always [OK]
      Common Mistakes:
      • Calculating GCD incorrectly
      • Swapping GCD and LCM values
      • Forgetting to divide product by GCD for LCM
      4. Identify the error in this C# code snippet that tries to compute the GCD using Euclidean algorithm:
      int Gcd(int a, int b) {
      while (b != 0) {
      int temp = a % b;
      a = b;
      b = temp;
      }
      return b;
      }
      medium
      A. Returns b instead of a after loop ends
      B. Uses wrong operator for remainder
      C. Infinite loop because b never changes
      D. Missing base case for zero inputs

      Solution

      1. Step 1: Trace the Euclidean algorithm loop

        The loop updates a and b until b becomes zero. At loop end, a holds the GCD.
      2. Step 2: Check return statement correctness

        The code returns b, which is zero at loop end. It should return a which holds the GCD.
      3. Final Answer:

        Returns b instead of a after loop ends -> Option A
      4. Quick Check:

        Return a after loop [OK]
      Hint: Return 'a' after loop, not 'b' [OK]
      Common Mistakes:
      • Returning the wrong variable after loop
      • Confusing remainder operator with division
      • Not updating variables inside loop
      5. Given two arrays A = [12, 15, 21] and B = [18, 35, 14], which C# code snippet correctly computes an array of LCMs for each pair (A[i], B[i]) using the Euclidean algorithm?
      hard
      A. int[] lcms = new int[A.Length]; for (int i = 0; i < A.Length; i++) { int gcd = Math.Gcd(A[i], B[i]); lcms[i] = (A[i] * B[i]) / gcd; }
      B. int[] lcms = new int[A.Length]; for (int i = 0; i < A.Length; i++) { int gcd = Math.Gcd(A[i], B[i]); lcms[i] = gcd * A[i] * B[i]; }
      C. int[] lcms = new int[A.Length]; for (int i = 0; i < A.Length; i++) { lcms[i] = Math.Gcd(A[i], B[i]); }
      D. int[] lcms = new int[A.Length]; for (int i = 0; i < A.Length; i++) { lcms[i] = (A[i] + B[i]) / Math.Gcd(A[i], B[i]); }

      Solution

      1. Step 1: Calculate GCD for each pair

        Use Math.Gcd(A[i], B[i]) to find the greatest common divisor for each pair.
      2. Step 2: Compute LCM using formula

        LCM = (A[i] * B[i]) / GCD. Store this in the lcms array at index i.
      3. Final Answer:

        Option A code snippet correctly computes LCM array -> Option A
      4. Quick Check:

        LCM = (a*b)/GCD for each pair [OK]
      Hint: LCM = (a*b)/GCD for each pair in loop [OK]
      Common Mistakes:
      • Multiplying GCD with product instead of dividing
      • Assigning GCD instead of LCM to result array
      • Using sum instead of product in LCM formula
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard