这篇文章讲的是一种筛法,我个人将它称之为Min_25筛。 它可以用来求积性函数$F(x)$的前缀和,条件与洲阁筛一样,可以快速地对一段质数的F求和。 它可以替代洲阁筛,而且空间常数、时间常数、代码复杂度远比洲阁筛优秀,甚至可以与杜教筛相媲美 时间复杂度大约与洲阁筛相同。 参考链接: https://... ...
分类:
其他好文 时间:
2018-01-17 15:47:50
阅读次数:
400
在$project euler$ 的第$10$题的 $forum$ 中Lucy Hedgehog 提到的这种方法。 求 $n$ 以内素数个数以及求 $n$ 以内素数和的算法。 定义$S(v,p)$为$2$到$v$所有整数中,在普通筛法中外层循环筛完 $p$ 时仍然幸存的数的和。因此这些数要不本身是素 ...
分类:
其他好文 时间:
2018-01-07 16:04:24
阅读次数:
188
题目大意:求区间[l,r]中素数的个数($1\leq l,r\le 2^{31}$,$r-l\leq 10^6$)。 解题思路:首先,用筛法筛出$2~\sqrt{r}$内的素数。 然后用这些素数筛l~r内的素数即可。 开数组时可以用偏移方法解决空间问题。 时间复杂度$O(\sqrt{r})$。 C+ ...
分类:
其他好文 时间:
2017-12-10 22:58:51
阅读次数:
213
1 #include 2 #include 3 using namespace std; 4 int num[100000]; 5 long long prime[5000001]; 6 bool is_prime[10000001]; 7 int N,M; 8 int cnt=1; 9 int m... ...
分类:
其他好文 时间:
2017-12-09 18:07:48
阅读次数:
165
题目描述 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。 ...
分类:
其他好文 时间:
2017-12-06 21:38:15
阅读次数:
135
在这里,将有 我 迄今为止学过的所有数论。 1、素数筛——埃拉托斯特尼筛法 时间复杂度:O(nloglogn) 方法:用每个素数筛所有它的倍数 证明:略 cpp //求一个数的欧拉函数 ll phi(ll x) { ll ans=x,c=x; for (int i=2;i1) ans=ans/c ( ...
分类:
其他好文 时间:
2017-11-30 16:17:41
阅读次数:
187
1607: [Usaco2008 Dec]Patting Heads 轻拍牛头 Description 今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏。贝茜让N(1≤N≤100000)头奶牛坐成一个圈.除了1号与N号奶牛外,i号奶牛与i-l号和i+l号奶牛相邻.N号奶牛与1号奶牛相邻.农 ...
分类:
其他好文 时间:
2017-11-25 15:16:01
阅读次数:
190
朴素的素数筛法中 bool chk(int x){ if(x==1) return 0; if(x==2)return 1;//一定要特判2 if(!(x&1)) return 0; int t=sqrt(x); for(register int i=3;i ...
分类:
其他好文 时间:
2017-11-20 23:15:27
阅读次数:
127
有些题目让你求一个区间的素数 基于普通的埃氏筛法, 衍生出区间筛法,例如求 [ a, b ]内的素数,可以先将 [ 0, 根号b ]内的素数全都找出来,然后在将 [ a, b ]内是其 [ 0, 根号b ] 中素数的倍数的数全部划去,区间剩余的数即为素数。 ...
分类:
其他好文 时间:
2017-11-14 22:29:43
阅读次数:
141