2025-11-20 06:19:47
很多人刚开始学质数筛法时容易搞混,其实sqrt-素数这个概念挺简单的。比如说要判断100是不是质数,只需要检查2到10之间的数就行,因为如果100能被 bigger than 10 的数整除,那另一个因数肯定 smaller than 10。就像切蛋糕一样,如果切到一半还没找到合适的刀,后面肯定也找不到啦。
为什么必须到√n就停呢?因为任何大于√n的因数都对应着小于√n的因数。比如找99的因数,39是因数但39大于√99≈9.95,这时候对应的另一个因数就是99÷39≈2.53,早就在2到9之间被检查过了。根据质数定理,当n小于10万时,这个方法能节省70%以上的计算量。比如筛到1000以内的质数,用这种方法只需要检查到31(因为√1000≈31.62),而传统方法要检查到999,效率整整翻了三倍。不过要注意像n=25这种平方数,√25=5刚好要检查到,这时候25能被5整除,就说明它不是质数啦。
本题链接: