Mobius Function and Inversion Principles

Mobius Function

Definition

\[\mu(n) = \begin{cases} 1 & n = 1 \\ 0 & n \text{ has squared prime factors} \\ (-1)^k & \text{where } k \text{ is the count of distinct prime factors of } n \end{cases}\]

Properties

The Mobius function is multilpicative:

\[\sum_{d \mid n} \mu(d) = \varepsilon(n) \\ \mu \ast 1 = \varepsilon\]

where \(\varepsilon(n) = [n = 1]\) and \(\ast\) denotes Dirichlet convolution.

Linear Sieve Copmutation

mobius[1] = 1;
for (int i = 2; i <= limit; i++) {
    if (!composite[i]) {
        primes[++prime_count] = i;
        mobius[i] = -1;
    }
    for (int j = 1; j <= prime_count && primes[j] * i <= limit; j++) {
        composite[primes[j] * i] = true;
        if (i % primes[j] == 0) {
            mobius[primes[j] * i] = 0;
            break;
        } else {
            mobius[primes[j] * i] = -mobius[i];
        }
    }
}

Mobius Inversion

Form 1

\[f(n) = \sum_{d \mid n} g(d) \implies g(n) = \sum_{d \mid n} \mu(d) f\left(\frac{n}{d}\right)\]

Form 2

\[f(n) = \sum_{n \mid d} g(d) \implies g(n) = \sum_{n \mid d} \mu\left(\frac{d}{n}\right) f(d)\]

Example Applications

Interval GCD Counting

\[\sum_{x=1}^a \sum_{y=1}^b [\gcd(x,y) = 1] = \sum_{d=1}^{\min(a,b)} \mu(d) \left\lfloor\frac{a}{d}\right\rfloor \left\lfloor\frac{b}{d}\right\rfloor\]

long long interval_gcd(int a, int b) {
    long long result = 0;
    int bound = min(a, b);
    for (int left = 1, right; left <= bound; left = right + 1) {
        right = min(a/(a/left), b/(b/left));
        result += (mobius_prefix[right] - mobius_prefix[left-1]) * 
                 (long long)(a/left) * (b/left);
    }
    return result;
}

Prime GCD Summation

\[\sum_{p \in \mathbb{P}} \sum_{x=1}^n \sum_{y=1}^m [\gcd(x,y)=p] = \sum_{k=1}^{\min(n,m)} \left\lfloor\frac{n}{k}\right\rfloor \left\lfloor\frac{m}{k}\right\rfloor \sum_{p \mid k, p \in \mathbb{P}} \mu\left(\frac{k}{p}\right)\]

for (int p : primes) {
    for (int k = p; k <= limit; k += p) {
        prime_sum[k] += mobius[k/p];
    }
}

Divisor Function Analysis

\[d(ij) = \sum_{x \mid i} \sum_{y \mid j} [\gcd(x,y)=1] \\ \sum_{i=1}^n \sum_{j=1}^m d(ij) = \sum_{d=1}^{\min(n,m)} \mu(d) \cdot s\left(\left\lfloor\frac{n}{d}\right\rfloor\right) \cdot s\left(\left\lfloor\frac{m}{d}\right\rfloor\right)\]

where \(s(x) = \sum_{k=1}^x \left\lfloor\frac{x}{k}\right\rfloor\)

long long divisor_sum(int n, int m) {
    long long total = 0;
    int bound = min(n, m);
    for (int left = 1, right; left <= bound; left = right + 1) {
        right = min(n/(n/left), m/(m/left));
        total += (mobius_prefix[right] - mobius_prefix[left-1]) * 
                divisor_table[n/left] * divisor_table[m/left];
    }
    return total;
}

Tags: mobius-function mobius-inversion number-theory linear-sieve dirichlet-convolution

Posted on Mon, 02 Nov 2026 16:21:28 +0000 by Hurklefish