如題,給定乙個範圍n,你需要處理m個某數字是否為質數的詢問(每個數字均在範圍1-n內)
輸入格式:
第一行包含兩個正整數n、m,分別表示查詢的範圍和查詢的個數。
接下來m行每行包含乙個不小於1且不大於n的整數,即詢問該數是否為質數。
輸出格式:
輸出包含m行,每行為yes或no,即依次為每乙個詢問的結果。
輸入樣例#1:
複製
100 52349197
輸出樣例#1:
複製
yesyesno
noyes
時空限制:500ms 128m
資料規模:
對於30%的資料:n<=10000,m<=10000
對於100%的資料:n<=10000000,m<=100000
樣例說明:
n=100,說明接下來的詢問數均不大於100且不小於1。
所以2、3、97為質數,4、91非質數。
故依次輸出yes、yes、no、no、yes。
#include using namespace std;
const int mn = 1e7 + 10;
const int mm = 1e5 + 10;
int n, m;
bool is[mn];
void aishishai() }}
int main()
return 0;
}
// 大於5 的素數 在6 左右
#include using namespace std;
bool is(int t)
int main()
} return 0;
}
素數篩法(埃氏篩,線性篩)
時間複雜度o nloglogn void prime int b prime i 1則是合數 原理很簡單,所有合數可以表示為乙個質數跟另乙個數的積,列舉每個已知素數的倍數就能標記完。但很明顯,這樣做會有重複。比如12 3 4 2 6,在2這個素數進行倍數標記時會標記,在3這個素數進行倍數標記時同樣會...
素數篩 埃氏篩 線性篩 區間篩)
顧名思義,素數篩就是用來篩素數的。1.埃氏篩 o nloglogn 對於一般 不毒瘤 的素數題,埃氏篩就夠了 原理 任何合數都有小於自身的質因數 內容 對於每乙個素數將它的 2 i x i i全部標記為1,使得所有的合數全被標記 不足 合數會被標記素因數次,不夠高效 void prime int x...
埃氏篩 洛谷P3383埃氏篩模板
思路 如果我們要篩出 1,n 內的所有素數,使用 1,n 內的素數去篩就可以了 設bool型陣列 a,a i 表示 i 是否被某個素數篩過 從 2 開始列舉每個數 i 若 a i false,表示 i 沒有更小的素因子,從而知道 i 是素數。列舉 i 的所有倍數 j,令 a j 1 如下 inclu...