埃拉托色尼筛法(Sieve of Eratosthenes)是一种用来求所有小于N的素数的方法。从建立一个整数2~N的表着手,寻找i? 的整数,编程实现此算法,并讨论运算时间。 由于是通过删除来实现,而1和0则不是素数,所以从2,3,5以及其倍数删除。 用Data[]来储存所有的数,将替换好的数字存 ...
分类:
其他好文 时间:
2017-01-01 22:30:02
阅读次数:
233
厄拉多筛法: 想要得到一个不大于N的数所有素数,可以先找到不超过根号N的所有素数,设2 = p1 < p2 < ......<pk ≤√N,然后在2,3,4......N里面进行下面的操作: 留下p1 = 2,把p1的倍数全部划掉, 再留下p2 ,把p2 的倍数全部划掉, 继续这一过程,直到留下pk ...
分类:
编程语言 时间:
2016-11-19 23:24:14
阅读次数:
426
http://poj.org/problem?id=3048 (题目链接) 题意 给出n个数,问其中哪个数拥有最大的质因子。 Solution 线性筛求素数 细节 。。 代码 ...
分类:
其他好文 时间:
2016-11-15 23:43:30
阅读次数:
215
欧拉筛法求素数 首先,我们知道当一个数为素数的时候,它的倍数肯定不是素数。所以我们可以从2开始通过乘积筛掉所有的合数。 将所有合数标记,保证不被重复筛除,时间复杂度为O(n)。代码比较简单↓_↓ if(i % prime[j] == 0) break;←_←这一步比较难理解解释: 首先,任何合数都能 ...
分类:
其他好文 时间:
2016-11-06 02:50:01
阅读次数:
109
筛选法求素数,不断的用3,5,7,等素数作为筛子,筛除这些数的倍数,即将合数筛除。用辅助数组p记录数i是否是素数。 ...
分类:
其他好文 时间:
2016-10-15 22:18:36
阅读次数:
160
时间复杂度O(n)当n比较大时欧拉筛法所用的时间比O(nloglogn)的算法的时间少的会越来越明显 为什么呢? 因为在欧拉筛法中,每一个合数只被访问并将其所对的f[]的值修改了一次。 ...
分类:
其他好文 时间:
2016-09-25 17:32:20
阅读次数:
201
题目链接 http://acm.hust.edu.cn/vjudge/problem/19411 解题思路 快速幂, 筛法求素数。 代码 ...
分类:
其他好文 时间:
2016-09-02 23:13:11
阅读次数:
218
欧拉函数,就是欧拉发现的一个关于求素数的的公式,然后我们编个函数实现这个公式。 欧拉发现求小于等于n的正整数中有多少个数与n互质可以用这个公式: euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0 ...
分类:
其他好文 时间:
2016-08-27 22:03:54
阅读次数:
106
欧拉函数,就是欧拉发现的一个关于求素数的的公式,然后我们编个函数实现这个公式。 欧拉发现求小于等于n的正整数中有多少个数与n互质可以用这个公式: euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0 ...
分类:
其他好文 时间:
2016-08-26 18:30:18
阅读次数:
164
参考自:http://www.cnblogs.com/flipped/p/5771492.html 自己做的时候不知道如何求种数。看了题解,感觉思路灰常巧妙。同时也感觉这是一道好题。 精髓在于转化为线性方程组。 求素数的思想,和高斯消元需要多加熟悉。 300个最大质因数小于2000的数,选若干个它们 ...
分类:
其他好文 时间:
2016-08-15 18:56:01
阅读次数:
129