Article start
DSA Course: Interview Patterns and Problem Solving
Module 15: Math & Number Theory

Modular Inverse: Extended Euclid Pattern

Find x such that a times x is congruent to 1 modulo m.

May 29, 2026·23

Learning Outcome

After this lesson, you should be able to find a modular inverse when gcd(a,m) is 1 and reject cases where it does not exist.

Problem Statement

Given integers a and m, return the modular inverse of a modulo m, or -1 if it does not exist.

InputOutputWhy
a = 3, m = 75

3

  • 5 = 15, and 15 mod 7 is 1.

Brute Force Approach

Try every x from 1 to m

  • 1 and check whether a * x modulo m equals 1. This is linear in m.

Optimized Approach

Use Extended Euclid to solve ax + my = gcd(a,m). If gcd is 1, normalize x into the range 0 to m

Exact Pseudocode

egcd(a, b):
  if b == 0:
    return (a, 1, 0)
  g, x1, y1 = egcd(b, a % b)
  return (g, y1, x1 - (a // b) * y1)

g, x, y = egcd(a, m)
if g is not 1:
  return -1
return (x % m + m) % m

Reference Code

class Solution:
    def modInverse(self, a, m):
        def egcd(x, y):
            if y == 0:
                return x, 1, 0
            g, x1, y1 = egcd(y, x % y)
            return g, y1, x1 - (x // y) * y1

        g, x, _ = egcd(a, m)
        if g != 1:
            return -1
        return (x % m + m) % m

Sample Dry Run

StepStateResult
Equation3x + 7y = 1need coefficient x
Euclid7 = 2*3 + 1gcd is 1
Back substitute

1 = 7

  • 2*3
x = -2
Normalize-2 mod 7 = 5inverse is 5

Complexity

MeasureValueReason
TimeO(log min(a,m))Extended Euclid follows the Euclidean remainder depth.
SpaceO(log min(a,m))The recursive version uses call stack space.

Edge Cases

  • If gcd(a,m) is not 1, no modular inverse exists.
  • The coefficient x can be negative and must be normalized.
  • Fermat inverse needs prime modulus, but Extended Euclid works for any coprime modulus.

Interview Checklist

  • Compute gcd and coefficients with Extended Euclid.
  • Return -1 when gcd is not 1.
  • Normalize x using (x mod m + m) mod m.

FAQs

When does a modular inverse exist?

It exists exactly when a and m are coprime, meaning their gcd is 1.

Why normalize x?

Extended Euclid may return a negative coefficient, but modular answers are usually reported from 0 to m

What is the core pattern?

Extended Euclidean coefficients.

Test your knowledge

Take a quick quiz based on this chapter.

Discussion

0 comments

Sign in to share a question or add to the discussion.
Start the discussion

Ask a question or share what stood out to you.