线性筛素数模板

author author     2022-08-22     174

关键词:

传送门:线性筛素数

 

Prime:

 1 #include<cstdio>
 2 
 3 const int MAXN = 10000100;
 4 int Prime[MAXN],n,m,Size;
 5 bool Vis[MAXN]={1,1};
 6 
 7 int main()
 8 {
 9     scanf("%d%d",&n,&m);
10     for(int i=2;i<n;i++)
11     {
12         if(!Vis[i])
13             Prime[++Size]=i;
14         for(int j=1;j<=Size&&Prime[j]<=i&&Prime[j]*i<=n;j++)
15             Vis[Prime[j]*i]=1;
16     }
17     for(int i=1,Que;i<=m;i++)
18     {
19         scanf("%d",&Que);
20         if(Vis[Que]) printf("No
");
21         else    printf("Yes
");
22     }
23     return 0;
24 }

 

线性筛素数模板

传送门:线性筛素数 Prime:1#include<cstdio>23constintMAXN=10000100;4intPrime[MAXN],n,m,Size;5boolVis[MAXN]={1,1};67intmain()8{9scanf("%d%d",&n,&m);10for(inti=2;i<n;i++)11{12if(!Vis[i])13Pr 查看详情

p3383模板线性筛素数(代码片段)

P3383【模板】线性筛素数欧拉筛O(n)#include<iostream>#include<cstdio>usingnamespacestd;intn,m,cnt,prime[10000002],v[10000002];//prime:素数表v:存某数的最小质因数intmain()scanf("%d%d",&n,&m);for(inti=2;i< 查看详情

模板线性筛素数

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>usingnamespacestd;intn,m,vis[10000010],prime[5000010],tot;voidinit(){for(inti=2;i<=n;i++){if(!vis[i])pr 查看详情

模板线性筛求素数(代码片段)

线性筛求素数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 查看详情

线性筛洛谷p3383线性筛模板

...而知道i是素数。枚举i的所有倍数j,令a[j]=1这样就可以在线性复杂度内预处理出比较大的区间的素数代码如下:#include<cstdio>#include<iostream& 查看详情

数学基础素数线性筛法--欧拉筛法模板普通筛法的优化

质数(素数):指大于1的所有自然数中,除了1和自身,不能被其它自然数整除的数合数:比1大,但不是素数的数称为合数,合数除了被1和自身整除,还能被其它数整除质因数(素因数或质因子):能整除给定正整数的质数,... 查看详情

模板线性筛素数(代码片段)

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; 查看详情

luogu3383模板线性筛素数

如果prime[i]是k的因子,那么【k*(在prime[i]以后的质数)】等于【prime[i]*(k/prime[i])*(这个质数)】,一定被筛过了,所以这里可以break。#include<iostream>#include<cstring>#include<cstdio>usingnamespacestd;boolisp[10000005];intn, 查看详情

[模板]线性筛素数(欧拉筛法)(代码片段)

用途$O(n)$处理出n以内所有素数原理使用合数=最大因数(除1和本身外)*最小质因数的原理来筛,每个数只会被筛一次对于每个数i,令它是某数的最大因数,然后从小到大地找<=i的素数j,则i*j是合数直到找到某个j使得$i\%j==0$,因... 查看详情

洛谷p3383模板线性筛素数

P3383【模板】线性筛素数题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M... 查看详情

洛谷p3383模板线性筛素数

P3383【模板】线性筛素数题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M... 查看详情

luogu_3383模板线性筛素数

1#include<bits/stdc++.h>2usingnamespacestd;3intn,m,cnt,prime[10000010],noprime[10000010];45intmain(){6scanf("%d%d",&n,&m);7prime[1]=2;8noprime[1]=1;9for(inti=2;i<=n;i++){10if(!noprime 查看详情

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> 查看详情

p3912线性筛素数的模板(代码片段)

这绿题贼水......原理我不讲了,随便拿张草稿纸推一下就明白了。1#include<cstdio>2usingnamespacestd;3constlonglongintN=100000020;4intsu[N],ans,top;5boolvis[N];6voidshai(intb)78for(inti=2;i<=b;i++)910if(!vis[i])1112su[to 查看详情

p3383模板线性筛素数

题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式:第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且不大... 查看详情

luogu3383模板线性筛素数

题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式:第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且不大... 查看详情

p3383模板线性筛素数

题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且... 查看详情