演算法競賽 高階指南 POJ2689

2021-10-02 22:18:24 字數 463 閱讀 6285

l,r取值1-2e9  沒有直接的演算法求出1-r之間的所有質數。

然我們知道合數x一定是由小於x的乙個質數乘上乙個數得來。

我們可以算出1-sqrtr 中的質數,然後用這些質數(模擬埃篩)篩去l-r之間的合數

複雜度:基本就是埃篩的複雜度

osqrt(r)*loglogsqrt(r)+(r-l)*loglogr;

#includeusing namespace std;

typedef long long ll;

ll a,b,c,d;

const int m =1e5+7;

ll vs[m],p[m],m;

ll vv[m*10];

bool gao(ll l,ll r)

return true;

}int main()

return 0;

}

poj 2689素數篩選

這道題目我就不貼題目了,就是素數篩選題。這道題目差點讓我崩潰,自己太菜的原因,提交了很多次,總是runtime error 後來才知道,素數篩選的範圍這能是2 16,然而這道題給的範圍超出了int的上界,所以,必須要用另外一種方法來篩選,看了人家的部落格,感覺方法超好。這道題有個突破點,就是區間在1...

poj2689素數問題

打算重新刷一下數論題,忘了很多了,水平也很差,此題入手就不順了,刷了乙個早上,只是乙個簡單 的素數應用罷了。題意 找出區間長度不超過10 6的最近的素數和最遠的素數 相鄰的 演算法 數在int範圍內,不可能全部一次篩出,所以先篩出50000以內的質數,其他整數 若是合數 必然 至少含有乙個50000...

大區間素數篩選 POJ2689

題意 給乙個區間 l,u 1 l u 2,147,483,647 u l 1000000,求出 l,u 內距離最近和距離最遠的素數對。由於l,u都小於2 32,所以區間內的合數的最小質因子必然小於2 16,所以先篩出2 16以內的素數,用篩出來的素數去篩 l,u 內的合數。然後把 l,u 內的素數儲...