公元前3世纪,古希腊学者埃拉托斯特尼(Eratosthenes)想找出所有小于100的质数。
他没有逐个试除,而是发明了一个绝妙的方法:
写下2~100,划掉2的倍数,再划掉3的倍数,再划掉5的倍数...
剩下的就是质数!
这个方法被称为"埃氏筛法"(Sieve of Eratosthenes),至今仍是计算机求质数的首选算法之一。
两千多年后的今天,我们在编程竞赛中依然在用这个古老而优雅的思想。
💡 为什么数论是竞赛必考?
数论题目看似简单(都是整数运算),但往往隐藏着深刻的数学规律。不懂数论,暴力超时;懂了数论,O(1)秒杀。
GCD、质因数分解、模运算——这三个工具贯穿了整个信息学竞赛的数学部分。