素數篩模板

2021-08-21 15:36:19 字數 425 閱讀 4779

素數篩的思想很是簡單,就是素數的倍數都是合數。所以打表就好,找到素數,然後把他的倍數都打成合數。餘下的就是真正的素數啦。(注意1不是素數)

#define max 10000//求1-9999的素數

int i,j;

bool num[max];   

memset(num, 1, sizeof(num));

//先全部弄成素數,注意只有bool才能初始化1即初始化為true,int等數字只能初始化為0或-1

num[1] = 0;

for (i = 2;i < max;i++)

for (j = 1;j < ans&&su[j]*i注意j和i有的時候要配合成long long,su陣列要成為long long型。

素數篩模板

素數篩 1 埃式篩法 o nlogn 2 尤拉篩法 線性篩 o n include using namespace std typedef long long ll ll st 1000005 ll primes 1000005 ll n ll sh 1000005 cnt 埃式篩,12被篩兩遍 v...

模板 線性篩素數

有兩個板子 乙個m個某數字是否為質數的詢問乙個求區間質數個數 題目描述 如題,給定乙個範圍n,你需要處理m個某數字是否為質數的詢問 每個數字均在範圍1 n內 輸入輸出格式 輸入格式 第一行包含兩個正整數n m,分別表示查詢的範圍和查詢的個數。接下來m行每行包含乙個不小於1且不大於n的整數,即詢問該數...

素數篩法(模板)

質數 在大於1的整數中,如果只包含1和本身這兩個約數,那麼就是素數時間複雜度 o sqrt n static boolean prime int n return true 合數只會被它的最小質因子篩掉 時間複雜度 o n static final int n static int prime ne...