Bird
Raised Fist0
DSA Pythonprogramming~5 mins

GCD and LCM Euclidean Algorithm in DSA Python - 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
Explain the Euclidean Algorithm for finding GCD.
The Euclidean Algorithm finds the GCD by repeatedly replacing the larger number with the remainder of dividing the larger by the smaller until the remainder is zero. The last non-zero remainder is the GCD.
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 remainder becomes zero. At this point, the other number is the GCD.
Click to reveal answer
intermediate
Why is the Euclidean Algorithm efficient for finding GCD?
It reduces the problem size quickly by replacing the larger number with a smaller remainder, avoiding checking all divisors. This makes it much faster than checking all possible divisors.
Click to reveal answer
What is the GCD of 48 and 18 using the Euclidean Algorithm?
A3
B12
C18
D6
Which formula correctly relates LCM and GCD of two numbers a and b?
ALCM = GCD / (a × b)
BLCM = a + b - GCD
CLCM = (a × b) / GCD
DLCM = GCD × (a + b)
In the Euclidean Algorithm, what do you do when the remainder is not zero?
AReplace the larger number with the remainder and repeat
BReplace the smaller number with the remainder and repeat
CStop and return the remainder
DAdd the remainder to both numbers
What is the GCD of two prime numbers?
AThe smaller prime
B1
CThe larger prime
DTheir product
Why is the Euclidean Algorithm preferred over checking all divisors?
AIt quickly reduces the problem size using remainders
BIt uses addition instead of division
CIt only works for small numbers
DIt finds LCM directly
Describe step-by-step how to find the GCD of two numbers using the Euclidean Algorithm.
Think about repeatedly using division and remainder.
You got /5 concepts.
    Explain how to calculate the LCM of two numbers using their GCD.
    LCM and GCD are connected by a simple formula.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does the Euclidean algorithm primarily calculate between two numbers?
      easy
      A. The difference between the two numbers
      B. The least common multiple (LCM)
      C. The sum of the two numbers
      D. The greatest common divisor (GCD)

      Solution

      1. Step 1: Understand the Euclidean algorithm purpose

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

        While GCD finds the largest number dividing both inputs, LCM finds the smallest number divisible by both. The Euclidean algorithm is specifically for GCD.
      3. Final Answer:

        The greatest common divisor (GCD) -> Option D
      4. Quick Check:

        Euclidean algorithm = GCD [OK]
      Hint: Euclidean algorithm finds GCD, not LCM [OK]
      Common Mistakes:
      • Confusing GCD with LCM
      • Thinking it calculates sum or difference
      • Assuming it finds prime factors
      2. Which of the following is the correct Python syntax to calculate GCD using the Euclidean algorithm recursively?
      easy
      A. def gcd(a, b): return a + b if b == 0 else gcd(b, a % b)
      B. def gcd(a, b): return a if b == 0 else gcd(b, a % b)
      C. def gcd(a, b): while b != 0: a, b = b, a % b return a
      D. def gcd(a, b): return b if a == 0 else gcd(a, b % a)

      Solution

      1. Step 1: Analyze recursive base case and recursive call

        The base case is when b == 0, returning a. Otherwise, call gcd with parameters (b, a % b) to reduce the problem.
      2. Step 2: Check each option's correctness

        def gcd(a, b): return a if b == 0 else gcd(b, a % b) matches the correct recursive Euclidean algorithm syntax. def gcd(a, b): return b if a == 0 else gcd(a, b % a) swaps parameters incorrectly. def gcd(a, b): while b != 0: a, b = b, a % b return a is iterative, not recursive. def gcd(a, b): return a + b if b == 0 else gcd(b, a % b) incorrectly adds a and b.
      3. Final Answer:

        def gcd(a, b): return a if b == 0 else gcd(b, a % b) -> Option B
      4. Quick Check:

        Recursive gcd uses b == 0 base and gcd(b, a % b) call [OK]
      Hint: Base case b==0, call gcd(b, a % b) recursively [OK]
      Common Mistakes:
      • Swapping parameters incorrectly
      • Using addition instead of modulo
      • Confusing recursive and iterative syntax
      3. What is the output of the following Python code?
      def gcd(a, b):
          while b != 0:
              a, b = b, a % b
          return a
      
      print(gcd(48, 18))
      medium
      A. 6
      B. 12
      C. 18
      D. 3

      Solution

      1. Step 1: Trace the while loop iterations

        Start with a=48, b=18. Iteration 1: a=18, b=48%18=12. Iteration 2: a=12, b=18%12=6. Iteration 3: a=6, b=12%6=0. Loop ends.
      2. Step 2: Return the final value of a

        When b=0, return a=6, which is the GCD of 48 and 18.
      3. Final Answer:

        6 -> Option A
      4. Quick Check:

        GCD(48,18) = 6 [OK]
      Hint: Use modulo until remainder zero; last non-zero divisor is GCD [OK]
      Common Mistakes:
      • Returning b instead of a
      • Confusing modulo with division
      • Stopping loop too early
      4. Find the error in this Python function to compute LCM using GCD:
      def gcd(a, b):
          while b:
              a, b = b, a % b
          return a
      
      def lcm(a, b):
          return a * b // gcd(a, b)
      
      print(lcm(12, 15))
      medium
      A. No error; output is correct
      B. gcd function has wrong loop condition
      C. lcm function should add gcd instead of divide
      D. lcm function should use gcd(b, a) instead of gcd(a, b)

      Solution

      1. Step 1: Check gcd function correctness

        The gcd function uses while b (equivalent to while b != 0), swapping a and b and updating b with a % b. This is correct.
      2. Step 2: Verify lcm formula correctness

        LCM is calculated as (a * b) divided by gcd(a, b), which is mathematically correct.
      3. Final Answer:

        No error; output is correct -> Option A
      4. Quick Check:

        LCM formula = (a*b)//GCD(a,b) [OK]
      Hint: LCM = (a*b)//GCD(a,b) is correct formula [OK]
      Common Mistakes:
      • Using addition instead of division in LCM
      • Incorrect loop condition in gcd
      • Swapping parameters unnecessarily
      5. Given two numbers 21 and 6, use the Euclidean algorithm to find their LCM. What is the correct LCM?
      hard
      A. 126
      B. 18
      C. 42
      D. 36

      Solution

      1. Step 1: Calculate GCD of 21 and 6 using Euclidean algorithm

        21 % 6 = 3, then 6 % 3 = 0, so GCD is 3.
      2. Step 2: Calculate LCM using formula

        LCM = (21 * 6) // 3 = 126 // 3 = 42.
      3. Final Answer:

        42 -> Option C
      4. Quick Check:

        LCM = (21*6)//GCD(21,6) = 42 [OK]
      Hint: LCM = (a*b)//GCD; find GCD first [OK]
      Common Mistakes:
      • Calculating LCM as product without dividing by GCD
      • Mixing up GCD and LCM values
      • Incorrect modulo calculations
      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