有兩個板子 乙個m個某數字是否為質數的詢問乙個求區間質數個數
題目描述
如題,給定乙個範圍n,你需要處理m個某數字是否為質數的詢問(每個數字均在範圍1-n內)
輸入輸出格式
輸入格式:
第一行包含兩個正整數n、m,分別表示查詢的範圍和查詢的個數。
接下來m行每行包含乙個不小於1且不大於n的整數,即詢問該數是否為質數。
輸出格式:
輸出包含m行,每行為yes或no,即依次為每乙個詢問的結果。
輸入輸出樣例
輸入樣例#1: 複製
100 523
49197輸出樣例#1: 複製
yesyes
nono
yes
#include#include#include#include#include#include#include#include#include#include#include#include#include#define exp 1e-9
#define pi acos(-1.0)
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
int randomm[3]=;//底數
ll q_pow(ll a,ll b,ll mod)
return ret;
}//快速冪,用來加快計算和防止爆long long
bool witness(ll a,ll n)//miller rabin演算法的重點
//把n-1拆分為2^s*r的形式,這裡j為s,tem為r
ll x=q_pow(a,tem,n);
if(x==1||x==n-1) return true;
while(j--)
//否則判斷等式a^(2jr) ≡-1 mod n 看是否有滿足的 j
return false;
}bool miller_rabin(ll n)
}return true;
}int main()
return 0;
}
題目描述
求區間質數個數
輸入輸出格式
輸入格式:
一行兩個整數 詢問次數n,範圍m
接下來n行,每行兩個整數 l,r 表示區間
輸出格式:
對於每次詢問輸出個數 t,如l或r∉[1,m]輸出 crossing the line
輸入輸出樣例
輸入樣例#1: 複製
2 51 3
2 6輸出樣例#1: 複製
2crossing the line
#includeusing namespace std;
int f[1000001];
bool vis[1000001];
void shai(int n)
}else f[i]=f[i-1];//字首和轉移
}}int main()
}return 0;
}
模板 線性篩素數
如題,給定乙個範圍n,你需要處理m個某數字是否為質數的詢問 每個數字均在範圍1 n內 輸入格式 第一行包含兩個正整數n m,分別表示查詢的範圍和查詢的個數。接下來m行每行包含乙個不小於1且不大於n的整數,即詢問該數是否為質數。輸出格式 輸出包含m行,每行為yes或no,即依次為每乙個詢問的結果。輸入...
模板 線性篩素數
zzx 做一下 模板 尤拉定理吧 yxy 啥玩意啊oao zzx 噢對了,你會不會算phi yxy 那是啥啊qwq zzx 你會不會寫歐篩 yxy 不會!逃 zzx qwq你先去做一下埃篩模板吧 給定乙個範圍n,你需要處理m個某數字是否為質數的詢問 每個數字均在範圍1 n內 1.暴力無腦篩素數qwq...
素數篩法(素數篩 線性篩)
求素數的方法在現階段可以總結為三種 這種方法最為簡單但效率太低,經過優化時間複雜度最低是o n sqrt n 輸入乙個n,輸出n以內所有素數 include intprime int n if flag 0 優化 printf d i intmain 素數篩法原理 2是素數,那麼2的所有倍數都是合數...