素數篩的思想很是簡單,就是素數的倍數都是合數。所以打表就好,找到素數,然後把他的倍數都打成合數。餘下的就是真正的素數啦。(注意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...