公元前300年,古希腊数学家欧几里得在《几何原本》中记载了一种求最大公约数的方法:
用较大数除以较小数,再用余数去除除数,
如此反复,直到余数为零,最后的除数就是GCD。
这个算法被称为"辗转相除法"(Euclidean Algorithm),是人类历史上第一个被明确记录的算法。
2300多年后的今天,它依然是计算机程序中求GCD的标准实现,时间复杂度仅为 O(log n)。
而它的扩展版本——扩展欧几里得算法,更是解不定方程、求乘法逆元的核心工具。
💡 为什么筛法如此重要?
在竞赛中,经常需要处理 [2, N] 范围内所有质数。逐个判定是 O(N√N),而埃氏筛只需 O(N log log N),线性筛更是 O(N)。
当 N = 10⁷ 时,暴力需要约 10¹⁰ 次运算(超时),而线性筛只需 10⁷ 次(毫秒级)。