線性篩素數模板
tag用來記錄第i個數是否是素數
p中儲存素數,下標從0開始
ind是有多少個素數
資料對應的範圍和素數的個數,在資料量大的時候大致呈10倍的關係,也就是tag陣列的大小起碼是p陣列大小的10倍
int p[2000];
bool tag[20000];
int ind;
void get_prime()
{
int cnt=0;
for(int i=2;i<2000;i++)
{
if(!tag[i])
p[cnt++]=i;
for(int j=0;j<cnt&&p[j]*i<2000;j++)
{
tag[i*p [j]]=1;
if(i%p[j]==0)
break;
}
}
ind=cnt;
}
相關推薦
線性篩素數 模板
#include"cstdio" #include"cstring" #include<iostream> using namespace std; #define MAX 10000//求MAX範圍內的素數 long long su[MAX],cnt; bool isprime[MAX
線性篩素數模板(C++版)
#include <bits/stdc++.h> using namespace std; const int N=1e7+50; int p[N]; //true表示被篩,即不是素數 bo
線性篩素數模板
tag用來記錄第i個數是否是素數 p中儲存素數,下標從0開始 ind是有多少個素數 資料對應的範圍和素數的個數,在資料量大的時候大致呈10倍的關係,也就是tag陣列的大小起碼是p陣列大小的10倍
P3383 【模板】線性篩素數
... right else cst pre left 數據 ret col 題目描述 如題,給定一個範圍N,你需要處理M個某數字是否為質數的詢問(每個數字均在範圍1-N內) 輸入輸出格式 輸入格式: 第一行包含兩個正整數N、M,分別表示查詢的範圍和查詢
luogu_3383 【模板】線性篩素數
bre rime esp turn bit %d rim style clu 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,cnt,prime[10000010],noprime[1
【luogu 3383】【模板】線性篩素數
100% put pre esp log main col i++ 每一個 題目描述 如題,給定一個範圍N,你需要處理M個某數字是否為質數的詢問(每個數字均在範圍1-N內) 輸入輸出格式 輸入格式: 第一行包含兩個正整數N、M,分別表示查詢的範圍和查詢的個數。 接
洛谷 P3383 【模板】線性篩素數
toolbar left 整數 show scan fin names 一行 bar P3383 【模板】線性篩素數 題目描述 如題,給定一個範圍N,你需要處理M個某數字是否為質數的詢問(每個數字均在範圍1-N內) 輸入輸出格式 輸入
[模板]線性篩素數(尤拉篩法)
用途 $O(n)$處理出n以內所有素數 原理 使用 合數=最大因數(除1和本身外)*最小質因數 的原理來篩,每個數只會被篩一次 對於每個數i,令它是某數的最大因數,然後從小到大地找<=i的素數j,則i*j是合數 直到找到某個j使得$i\%j==0$,因為再往後的話,j'> i的某個因子,
基礎題 P3383 【模板】線性篩素數 洛谷 簡單
題目描述 如題,給定一個範圍N,你需要處理M個某數字是否為質數的詢問(每個數字均在範圍1-N內) 輸入輸出格式 輸入格式: 第一行包含兩個正整數N、M,分別表示查詢的範圍和查詢的個數。 接下來M行每行包含一個不小於1且不大於N的整數,即詢問該數是否為質數。 輸出格式: 輸出包含M
[洛谷]P3383 【模板】線性篩素數 (#數學 -1.15)
題目描述 如題,給定一個範圍N,你需要處理M個某數字是否為質數的詢問(每個數字均在範圍1-N內) 輸入輸出格式 輸入格式: 第一行包含兩個正整數N、M,分別表示查詢的範圍和查詢的個數。 接下來M行每行包含一個不小於1且不大於N的整數,即詢問該數是否為質數。 輸出格式:
luogu P3383 【模板】線性篩素數
強推洛穀日報 寫的超棒! (洛穀日報裡的文章都超好 (所以我就不說什麼了 質數判定方法 #include<cstdio> #include<cstring> using namespace std; #define maxn 10000010 in
【模板】線性篩素數(埃篩+歐篩)
本來打算自己寫一篇的,但在找埃篩的程式碼時找到了一篇不錯的題解,修改了一點內容上的表述分享出來,原作者的洛谷ID為 dormantbs 我們常說的線篩是指線上性時間內把素數篩出來的過程,這裡介紹兩種篩法. 一般篩法(埃拉託斯特尼篩法,之後簡稱為埃篩): 基
數論——【模板】線性篩素數
題目來源 洛谷P3383【模板】線性篩素數 https://www.luogu.org/problem/show?pid=3383 思路 線性篩素數模板題 時間複雜度:O(n) 程式碼(C++
【BZOJ2186】[Sdoi2008]沙拉公主的困惑 線性篩素數
printf 兩個 stream 一個 測試 strong 幫助 zoj 編號 【BZOJ2186】[Sdoi2008]沙拉公主的困惑 Description 大富翁國因為通貨膨脹,以及假鈔泛濫,政府決定推出一項新的政策:現有鈔票編號範圍為1到N的階乘,但是,政
計蒜客 2017 NOIP 提高組模擬賽(四)Day1 T1 小X的質數 線性篩素數
範圍 線性篩 mat 需要 接下來 包含 能夠 數字 bottom 小 X 是一位熱愛數學的男孩子,在茫茫的數字中,他對質數更有一種獨特的情感。小 X 認為,質數是一切自然數起源的地方。 在小 X 的認知裏,質數是除了本身和 1 以外,沒有其他因數的數字。 但由於小 X
線性篩素數
span tro col -m std 正整數 \n str bre 題目描述 如題,給定一個範圍N,你需要處理M個某數字是否為質數的詢問(每個數字均在範圍1-N內) 輸入輸出格式 輸入格式: 第一行包含兩個正整數N、M,分別表示查詢的範圍和查詢的個數。 接下來M行每行
線性篩素數詳細整理
通過 大於 不可 nlogn 調和級數 () 都是 保存信息 整體 如果你在1個月前讓我判斷素數,我一定會猛敲出以下代碼: bool check( int num ) { int tmp =sqrt( num); for(int i= 2;i
莫比烏斯線性篩(模板)
//線性篩法求莫比烏斯函式 bool check[MAXN+10]; long long prime[MAXN+10]; int mu[MAXN+10]; void Moblus() { memset(check,false,sizeof(check)); mu[1] = 1;
快速線性篩素數
#include<stdio.h> #include<string.h> const int maxn = 1e7+7; bool isprime[maxn]; int prim
[絕對能看懂!]Deciphering Password(積性函式+線性篩+素數分解)
描述 Xiaoming has just come up with a new way for encryption, by calculating the key from a publicly viewable number in the following way: Let t