埃式篩選法(厄拉多塞篩法)
作者:由 叫我阿哲就好 發表于 繪畫時間:2022-03-19
比如說求20以內質數的個數
1。首先0,1不是質數
2。2是第一個質數,然後把20以內所有2的倍數劃去。
3。2後面緊跟的數即為下一個質數3,然後把3所有的倍數劃去。
4。3後面緊跟的數即為下一個質數5,再把5所有的倍數劃去。以此類推
為什麼遍歷的上界是根號n+1呢,為什麼不全遍歷一遍呢
一開始想不通,後來發現是個簡單的數學證明問題
如果要找到正整數n的整數因子x和y的話,有n=x*y,那麼就有y=n/x
這是一個反比例函式
反比例函式曲線上任意一點的橫縱座標相乘都為n
但是第一象限曲線左半邊組合和右半邊組合其實是重複的(1,4)和(4,1)等等
該曲線是關於y=x對稱的,且y=x與曲線相交的點的座標就是(根號n,根號n)
也就是遍歷根號n以前的數字是和遍歷根號n以後的數字是重複的,只遍歷一邊就可以了
上一篇:不織布為什麼這麼硬核?