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 內的素數儲...