线性筛中每个数只会被最小的素因子筛一次 1)线性筛素数 2)线性筛约数个数 每个数的约数个数为(a1+1)*(a2+1)*...*(ak+1),首先如果数i是素数,可以直接得到约数个数w[i]=2,又由于线性筛的时候,每个数是被最小素因子筛掉,所以如果i%prime[j]!=0,那么prime[j] ...
分类:
其他好文 时间:
2019-05-23 13:14:13
阅读次数:
146
初学Java,学到流程控制的循环,有个练习题是暴力遍历素数。 因为看过av32186751,知道有个筛法,就想试试。 又受到线性筛法(一)--素数筛法(一) - nerd呱呱 - 博客园中,的这段启发,就有了下面的代码。 引用文字: 我们先定义一个数组来存100000以内数是否的素数,下标表示数,数 ...
分类:
编程语言 时间:
2019-05-19 14:24:26
阅读次数:
137
区间筛素数:先筛出1~sqrt(R)的素数,然后对于每个询问只要用这些素数筛掉区间内的合数即可。 几个细节:1.特判和1有关的一些情况 2.每次减去L偏移量,数组只开区间大小 3.POJ无法使用万能头文件(需要火星救援(大雾 ...
分类:
其他好文 时间:
2019-05-10 19:09:30
阅读次数:
129
筛素数 弱智筛法就不贴了 下面是埃氏筛 先补一个很有意思的东西 1+1/2+1/3+1/4+....+1/n=log n 线性筛代码 欧拉函数 对于大范围内求质因数个数硬解肯定太慢,用线性筛优化 先用线性筛找到每一个数的最小质因子(rec[i]) 分析:第二个if里,当i的指数>=2时就可以直接乘, ...
分类:
其他好文 时间:
2019-04-28 18:44:47
阅读次数:
153
毒瘤出题人,坑了我们好久,从基本的素数筛选,到埃氏筛法,到随机数快速素数判定,到费马小定理,好好的水题做成了数论题。 结果答案是 2*n=n+3*n,特判1,2. 以下为毒瘤题目: 题目大意: 输入一个数n, 输出两个合数(即非素数)a,b 实现 n+a=b 解题思路 3n=n+2n; 特判1、2 ...
这次花点时间做了一下几个简单的模板,或许以后还会有新的模板! 1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 5 typedef long long ll; 6 const ll MAX = 0xffffffff; 7 ...
分类:
其他好文 时间:
2019-01-13 18:12:41
阅读次数:
139
一、欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示。 通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数。 比如x=12,拆成质因数为12=2*2*3, 12以内有1/2的数是2的倍数,那么有1-1/2的数不是2的倍数(1,3,5,7,9,11), 这6个数 ...
分类:
其他好文 时间:
2018-12-18 11:02:41
阅读次数:
209
题目描述: 题目大意:找出具有最大素数因子的整数。如果有不止一个,则输出在输入文件中出现最早的一个。 解题思路:刚开始时,p数组中的元素全为0,刚开始对于素数 i,p[i]=0,用一个for循环,将是素数 i 的倍数的数 的在数组p中的值全部赋值为 i; 如:第一轮:2为素数,p[2]=0,p[4] ...
分类:
其他好文 时间:
2018-11-20 22:56:10
阅读次数:
214