
ACM--素数相关
focus_best
这个作者很懒,什么都没留下…
展开
-
HDU2710
HDU2710 Max Factor★★输入:第一行为一个整数N(1 输出:输出这N个数中的那个数,这个数具有最大的素数因子,且这个数出现的最早。分析:先求出1到20000之间的所有素数保存下来,然后对于每个Ni依次找到它的最大素因子即可。第二步可以优化提高效率。AC代码(未用模板,61MS):#include#include#include#includeus原创 2014-01-17 00:02:26 · 1046 阅读 · 0 评论 -
POJ 2739 Sum of Consecutive Prime Numbers(素数)
POJ 2739 Sum of Consecutive Prime Numbers(素数)原创 2014-11-14 17:11:49 · 1614 阅读 · 0 评论 -
POJ 2262 Goldbach's Conjecture(素数相关)
POJ 2262 Goldbach's Conjecture(素数相关)http://poj.org/problem?id=2262题意: 给你一个[6,1000000]范围内的偶数,要你将它表示成两个素数相加和的形式。如果存在多组解,请输出两个素数差值最大的解。分析: 首先我们用素数筛选法求出100W以内的所有素数。 筛选法求素数可见: http://blog.youkuaiyun.com/u013480600/article/details/411200原创 2014-11-15 11:15:55 · 1079 阅读 · 0 评论 -
POJ 3978 Primes(求范围素数个数)
POJ 3978 Primes(求范围素数个数)http://poj.org/problem?id=3978题意: 给你一个区间范围A和B,要你求出[A,B]内的素数个数。其中B<=100000。分析: 首先我们求出2到10W的素数表,把每个素数按从小到大的顺序保存在prime数组中。然后我们用二分查找找到A的下界和B的上界,然后用上界-下界即为素数个数。 程序实现用了两种筛选法来求素数表。两种筛选法都是基于每个自然合数都可以分解为:最小素因子p*剩余部分q。原创 2014-11-14 16:10:04 · 4795 阅读 · 2 评论 -
HDU 1431 素数回文(回文素数)
HDU 1431 素数回文(回文素数)http://acm.hdu.edu.cn/showproblem.php?pid=1431题意: 给你两个整数a,b。(5 <= a < b <= 100,000,000)要你按顺序输出[a,b]区间内的所有回文素数。分析: 定理:如果一个数是回文且有偶数位,那么它能被11整除。 根据上面定理我们可知我们只需要找到区间[2,1000W)内的素数即可。(想想为什么)上面b的范围直接缩小了10倍。 剩下的工作就是用原创 2014-11-16 15:26:25 · 1632 阅读 · 0 评论 -
HDU 2098 分拆素数和(素数)
HDU 2098 分拆素数和(素数)http://acm.hdu.edu.cn/showproblem.php?pid=2098题意: 给你一个偶数,问你这个偶数有多少种方式能由两个不同的素数构成?分析: 首先求出10000以内的所有素数。 如果这个偶数X能有两个不同的素数构成,那么一定一个小于(X/2-1). 只要从小到大枚举这个比较小的素数a,然后看看X-b是否是素数即可得到一种组合方式。 依次统计所有组合方式即可。AC代码:原创 2014-11-16 13:26:58 · 1775 阅读 · 0 评论 -
HDU 1262 寻找素数对(素数)
HDU 1262 寻找素数对(素数)http://acm.hdu.edu.cn/showproblem.php?pid=1262题意: 哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.分析:显然先用筛选法求出10000以内的所有素数,然后对于给定的数X。 一定原创 2014-11-16 14:51:13 · 1639 阅读 · 0 评论 -
HDU 2012 素数判定(素数)
HDU 2012 素数判定(素数)http://acm.hdu.edu.cn/showproblem.php?pid=2012题意:水题一枚 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。分析: 本题的数据范围很小,求出表达式在-39到50内的所有可能值可以得到下面的数:1523 1447 13731301 1231 1163 1097 1033 971 911853 797 7原创 2014-11-16 15:50:00 · 2528 阅读 · 0 评论 -
POJ 3518 Prime Gap(素数)
POJ 3518 Prime Gap(素数)http://poj.org/problem?id=3518题意: 给你一个数,如果该数是素数就输出0. 否则输出比这个数大的素数与比这个数小的素数的差值。分析: 明显本题先要用筛选法求出130W(严格的话应该是求第100001个素数)以内的所有素数。 然后判断给的数是否是素数即可。 如果不是素数,那么就找出它在素数素组内的上界和下界,输出两个素数的差值即可。 筛选法求素数可见:原创 2014-11-16 12:48:06 · 1350 阅读 · 0 评论