关键词:
题目描述
如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)
输入输出格式
输入格式:
第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。
接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。
输出格式:
输出包含M行,每行为Yes或No,即依次为每一个询问的结果。
输入输出样例
说明
时空限制: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<iostream> using namespace std; int prime[10010]; bool vis[10000010]; int main() int n, m, k, cnt = 0; cin >> n >> m; for(int i = 2; i <= n; ++i) if(!vis[i]) prime[++cnt] = i; for(int j = 1; (j <= cnt) && i * prime[j] <= n; ++j) vis[i * prime[j]] = true; if(i % prime[j] == 0) break; while(m--) cin >> k; int i = 1, j = cnt, mid; while(i <= j) mid = (i + j) / 2; if(k == prime[mid]) cout << "Yes" << endl; break; else if(k > prime[mid]) i = mid + 1; else j = mid - 1; if(k != prime[mid]) cout << "No" << endl; return 0;
p3383模板线性筛素数(代码片段)
P3383【模板】线性筛素数埃氏筛->欧拉筛普通埃氏筛(O(nlognlogn))for(inti=2;i<=n;i++)//注意终止条件if(!notpri[i])for(intj=2;j*i<=n;j++)notpri[i*j]=true;优化for(inti=2;i<=n;i++)//到根号if(!notpri[i])for(intj=i;j*i<=n;j++)//j从i开始,因为... 查看详情
线性筛洛谷p3383线性筛模板
思路:如果我们要筛出[1,n]内的所有素数,使用[1,√n]内的素数去筛就可以了设bool型数组a,a[i]表示i是否被某个素数筛过从2开始枚举每个数i:若a[i]=false,表示i没有更小的素因子,从而知道i是素数。枚举i的所有倍数j,令a[j]=1这... 查看详情
洛谷p3383模板线性筛素数
P3383【模板】线性筛素数题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M... 查看详情
洛谷p3383模板线性筛素数
P3383【模板】线性筛素数题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M... 查看详情
p3383模板线性筛素数
题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式:第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且不大... 查看详情
p3383模板线性筛素数
题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且... 查看详情
洛谷p3383模板线性筛素数
题目链接:https://www.luogu.org/problem/show?pid=3383题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式:第一行包含两个正整数N、M,分别表示查询的范围和查询的... 查看详情
p3383模板线性筛素数洛谷
https://www.luogu.org/problem/show?pid=3383#sub题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数... 查看详情
洛谷p3383模板线性筛素数
题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且... 查看详情
洛谷p3383模板线性筛素数
题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且... 查看详情
p3383模板线性筛素数(代码片段)
题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且... 查看详情
洛谷p3383模板线性筛素数(miller_rabin)
题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且... 查看详情
[洛谷p3383]线性筛素数-欧拉筛法
Description如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)Input&OutputInput第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且不大于N的整数... 查看详情
模板线性筛求素数(代码片段)
线性筛求素数1#include<iostream>2#include<cstring>3#include<algorithm>4#include<cstdio>56constintMAX_N=10000000+10;78boolvis[MAX_N];9intPrime[MAX_N>>1];10inlinevoidGetPrime(intn 查看详情
模板线性筛素数(代码片段)
memset(check,false,sizeofcheck);inttot=0;for(inti=2;i<=N;++i)if(!check[i])prime[tot++]=i;for(intj=0;j<tot;++j)if(i*prime[j]>N)break;check[i*prime[j]]=true;if(i%prime[j]==0)break; 查看详情
[模板]线性筛素数(欧拉筛法)(代码片段)
用途$O(n)$处理出n以内所有素数原理使用合数=最大因数(除1和本身外)*最小质因数的原理来筛,每个数只会被筛一次对于每个数i,令它是某数的最大因数,然后从小到大地找<=i的素数j,则i*j是合数直到找到某个j使得$i\%j==0$,因... 查看详情
luogu3383模板线性筛素数(代码片段)
我太菜了%韩神1#include<iostream>2#include<cstdio>3#include<cmath>4#include<cstdlib>5#include<cstring>6#include<algorithm>7#include<vector>8#include<queue>9#de 查看详情
浅谈线性素数筛(代码片段)
...小的质因数筛掉它,所以时间复杂度保证是线性的。 模板:https://www.luogu.org/problemnew/show/P3383代码:1#include<iostream> 查看详情