码迷,mamicode.com
首页 >  
搜索关键字:素数筛    ( 359个结果
素数筛选法
关于素数的算法是信息学竞赛和程序设计竞赛中常考的数论知识,在这里我跟大家讲一下寻找一定范围内素数的几个算法。看了以后相信对大家一定有帮助。正如大家都知道的那样,一个数 n 如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方,那么我们可以用这个性质用最直观的方法来求出小于等于n的所有的素数...
分类:其他好文   时间:2014-10-10 21:11:54    阅读次数:300
BZOJ2749 [HAOI2012]外星人
数论好题!!!首先由题目给的公式,对于素数x > 2,phi(x)会变出好多2...而phi(2) = 1YY一下就可以发现,就是求出每一个质数经过分解会变出多少个2来,2的个数就是ans。于是我们令f[i]表示i分解出了几个2:这一过程类似素数筛法i为质数,f[i] = f[i - 1];否则,f...
分类:其他好文   时间:2014-10-07 01:20:42    阅读次数:509
UVa 10179 - Irreducable Basic Fractions
题目:计算一个给定数的欧拉函数(1~n-1中和n互质的数的个数)。 分析:数论,素数筛法,欧拉函数。             欧拉函数:φ(n)= n *(1 - 1/p1)*(1 - 1/p2)*(1 - 1/p3)*…*(1 - 1/pt);             这里利用筛法打表计算出50000内的素数,因为数据范围是1000000000内的,             所以,不...
分类:其他好文   时间:2014-10-05 15:04:08    阅读次数:215
codeforce A. Design Tutorial: Learn from Math
题意:将一个数拆成两个合数的和, 输出这两个数!(这道题做的真是TMD水啊)开始的时候不知道composite numbers是啥意思,看了3遍才看懂....看懂之后又想用素数筛选法来做,后来决定单个判断一个数是否为素数的方法来写,结果写错了两次,快疯掉了简直.... 1 #include 2 #i...
分类:其他好文   时间:2014-09-29 15:30:11    阅读次数:228
POJ2689_Prime Distance【素数】【两次筛法】
题目大意:给你一个区间【L,U】,求出从L到U之间素数序列中,连续两个素数差值最大 的最小的两对素数对,但其中(1<=L< U<=2,147,483,647),但区间【L,U】距离不超 过1000000 思路:因为L,U的值太大了,普通素性判断和素数筛法都不可行,所以可以考虑先筛选 一次,筛出50000以内的素数,然后用50000以内的素数再次筛选出区间【L,U】的素 数。第一次素数筛法比较简单,主要是第二次筛法,分别判断【L,U】中每个数是50000 以内的素数的多少倍,若为1倍,则从2倍开始筛选。若不为...
分类:其他好文   时间:2014-09-25 01:17:57    阅读次数:394
NYOJ-520 最大素因子
这个题基本上就两个知识点, 一个素数筛选法求素数,另一个是求最大公因子, 不过确定最大素数在素数表中的位置时,要用到二分的思想,不然会超时,下面是具体代码的实现; 1 #include 2 #include 3 #define SIZE 1000020 4 int prime[SIZE];//来.....
分类:其他好文   时间:2014-09-24 21:36:57    阅读次数:192
【POJ3006】Dirichlet's Theorem on Arithmetic Progressions(素数筛法)
简单的暴力筛法就可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 const int N = 1...
分类:其他好文   时间:2014-09-20 15:18:57    阅读次数:182
素数判别算法
素数筛选法原理就是当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
poj2689:素数筛
题目大意,给定l和u,求区间[l,u]内的素数中,相邻两个差最大和最小的素数其中 u的范围达到了2e9本质上需要找出n以内的所有素数,使用筛法。先保存50000(大于sqrt(2e9))内的所有素数,然后再去筛出区间[l,u]内的素数(题上给定l-u#include#include using na...
分类:其他好文   时间:2014-09-09 21:19:10    阅读次数:255
素数、亲和数、完数的求法
这几个问题都可以用一个辅助数组来帮助求解,也有的称为是伴随数组。 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
359条   上一页 1 ... 31 32 33 34 35 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!