POJ 2262 Goldbach's Conjecture(素数相关)
http://poj.org/problem?id=2262
题意:
给你一个[6,1000000]范围内的偶数,要你将它表示成两个素数相加和的形式。如果存在多组解,请输出两个素数差值最大的解。
分析:
首先我们用素数筛选法求出100W以内的所有素数。
筛选法求素数可见:
http://blog.csdn.net/u013480600/article/details/411200...
分类:
数据库 时间:
2014-11-15 11:27:48
阅读次数:
254
题目链接:Codeforces 484B Maximum Value
题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,并且ai≥aj
解题思路:类似于素数筛选法的方式,每次枚举aj,然后枚举k,每次用二分找到小于k?aj并且最大的ai,维护答案,过程中加了一些剪枝。
#include
#include
#include
using namespace std;...
分类:
其他好文 时间:
2014-11-07 01:04:41
阅读次数:
244
思路:将输入的这个数分成n个素数的相乘的结果,用一个数组存储起来。之后再输出就可以了
Eddy's research I
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6633 Accepted Submis...
分类:
其他好文 时间:
2014-10-24 01:45:58
阅读次数:
163
关于素数的算法是信息学竞赛和程序设计竞赛中常考的数论知识,在这里我跟大家讲一下寻找一定范围内素数的几个算法。看了以后相信对大家一定有帮助。正如大家都知道的那样,一个数 n 如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方,那么我们可以用这个性质用最直观的方法来求出小于等于n的所有的素数...
分类:
其他好文 时间:
2014-10-10 21:11:54
阅读次数:
300
题意:将一个数拆成两个合数的和, 输出这两个数!(这道题做的真是TMD水啊)开始的时候不知道composite numbers是啥意思,看了3遍才看懂....看懂之后又想用素数筛选法来做,后来决定单个判断一个数是否为素数的方法来写,结果写错了两次,快疯掉了简直.... 1 #include 2 #i...
分类:
其他好文 时间:
2014-09-29 15:30:11
阅读次数:
228
这个题基本上就两个知识点, 一个素数筛选法求素数,另一个是求最大公因子, 不过确定最大素数在素数表中的位置时,要用到二分的思想,不然会超时,下面是具体代码的实现; 1 #include 2 #include 3 #define SIZE 1000020 4 int prime[SIZE];//来.....
分类:
其他好文 时间:
2014-09-24 21:36:57
阅读次数:
192
素数筛选法原理就是当i是素数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉。算法实现 1 #include 2 #include 3 using namespace std; 4 5 int main() 6 { 7 int ...
分类:
其他好文 时间:
2014-09-15 01:01:27
阅读次数:
337
这几个问题都可以用一个辅助数组来帮助求解,也有的称为是伴随数组。
1、素数
筛选法求素数:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。
void prime(int n)
{
vector isPrime(n+1,true);
int i;
for (i = 2;i*i <=...
分类:
其他好文 时间:
2014-09-09 13:06:48
阅读次数:
328
当一个数不算大的时候,可以用普通的求素数的方法去求,但是如果一个数过大的话,就像让求1-十亿之间素数的个数,普通方法就不行了,这事就需要用到素数筛选法,他的时间复杂度是O(n),尽管不算很好,但是,也算是目前为止比较快的一种方法了,它是以空间换取时间,现在的计算机,空间有的是,但是时间是非常珍贵的。...
分类:
其他好文 时间:
2014-08-29 15:57:08
阅读次数:
190
筛选法求素数:
筛选素数的方法不是直接判断一个数是不是素数,而是将不是素数的数全部去除,剩余的就是素数了。
1.如果区间包含1,首先将1标记为非素数。
2.从下一个最小的素数a开始,将该素数的倍数(2a,3a,……,ka)全部标记为非素数。
3.从a的后面找下一个最小的素数,重复2操作。
4.重复2,3操作,直到所有元素都筛选完为止。
例如:筛选1到25之间的素数
①按部就班地按上面...
分类:
其他好文 时间:
2014-08-08 16:02:36
阅读次数:
335