參考**:
給定整數a和b,請問區間[a,b)內有多少個素數?a12,b-a<=106
因為b以內合數的最小質因數一定不超過sqrt(b),如果有sqrt(b)以內的素數表的話,就可以把線性篩用在[a,b)上了.
先分別做好[2,sqrt(b))的表和[a,b)的表,然後從[2,sqrt(b))的表中篩得素數的同時,也將其倍數從[a,b)的表中劃去,最後剩下的就是區間[a,b)內的素數了.
#include
#include
#include
#include
using namespace std;
typedef
long
long ll;
#define inf 0x3f3f3f3f
#define mm(a) memset(a, 0, sizeof(a))
const
int maxn =
1e6+10;
ll v1[maxn]
, v2[maxn]
;void
prime
(ll a, ll b)}if
(a ==
0|| a ==
1) v2[0]
=0;}
intmain()
return0;
}
樹狀陣列基本模版 區間更新,單點查詢
題目描述 如題,已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數數加上x 2.求出某乙個數的和 輸入格式 第一行包含兩個整數n m,分別表示該數列數字的個數和操作的總個數。第二行包含n個用空格分隔的整數,其中第i個數字表示數列第i項的初始值。接下來m行每行包含2或4個整數,表示乙個操作,具...
caioj1400 差分約束(模版) 區間
題目傳送門 製作人 陳保良 這種演算法的基礎是最短路,不會的請先學小白菜1088 include include include using namespace std struct bian a 510000 int len,last 51000 void ins int x,int y,int ...
線性篩 區間篩
求l到r之間的素數1 l 231 1 1 leq l 1 l231 1由於範圍過大只需要求得r 2 sqrt 2 2r 線性篩素數時間複雜度o n int n,m int prime 100000 vis 100005 void primes int n for int j 1 j m j 區間篩素...