素数筛选目的是筛选出某一区间[m, n)内的所有素数,常见方法包括如下几种:1.朴素的筛选法:先写出判断函数isPrime(),再对区间内的数依次调用isPrime()进行判断,算法核心是以2~根号n作为除数。#include bool isPrime(int n){ /* C+...
分类:
其他好文 时间:
2015-07-12 15:39:09
阅读次数:
144
题意:
给一个区间[L,U],(1
由于L,U都小于2^32,所以区间内的合数的最小质因子必然小于2^16,所以先筛出2^16以内的素数,用筛出来的素数去筛[L,U]内的合数。然后把[L,U]内的素数保存下来,再搜索最近和最远的素数对即可。注意两整数相乘可能溢出32位,注意对1的判断。
代码:
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-07-02 14:07:06
阅读次数:
135
ACdream 1112 Alice and Bob (博弈&&素数筛选优化)...
分类:
其他好文 时间:
2015-06-28 15:38:55
阅读次数:
125
Prime Distance
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 13459
Accepted: 3578
Description
The branch of mathematics called number theory is about prope...
分类:
其他好文 时间:
2015-05-23 11:31:57
阅读次数:
127
题目链接:http://poj.org/problem?id=2689题意:给出一个区间[L, R],找出区间内相连的,距离最近和距离最远的两个素数对。其中(1 2 #include 3 typedef long long LL; 4 const int MAXN = 50000; 5 const....
分类:
其他好文 时间:
2015-05-14 13:50:40
阅读次数:
126
【模板】素数筛选 1 #include 2 3 int main() 4 { 5 int i,j,a[505]={0}; 6 for(i=1;i<=500;i++) 7 a[i]=1; 8 for(i=2;i<=500;i++) 9 if(...
分类:
其他好文 时间:
2015-05-03 10:30:23
阅读次数:
112
题目大意: 给出T个实例,T 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define maxn 50000 9 int vis[maxn], isprime[5200], num[100005].....
分类:
其他好文 时间:
2015-04-28 15:39:48
阅读次数:
204
public class PrimeFilter2{
public static void main(String args[]){
int a[]={2,3,5,7};
print(a);
int b[] = filter(a,100);
print(b);
int c[] = filter(b,10000);
print(c...
分类:
其他好文 时间:
2015-04-27 15:17:29
阅读次数:
130
题意:给出两个四位数,现要改变第一个数中的个,十,百,千位当中的一个数使它最终变成第二个数,要求这过程中形成的数是素数,问最少的步骤题解:素数筛选+bfsSample Input31033 81791373 80171033 1033Sample Output670注意第一位不能变成0即可 1 #i...
分类:
其他好文 时间:
2015-04-25 10:35:49
阅读次数:
114
在博文(1)和(2)里分别用了4中方式写一个素数筛选的算法,分别是javascript in browser、node.js、ruby和c;最终的结果是c最快,node.js其次,js in b虽然也不慢,但极不稳定,所以排在第三,ruby最慢。现在我们在linux64中用汇编语言重写sieve算法,看看动用最终的武器:汇编语言,我们能不能进一步优化素数筛选算法。如果忘了算法逻辑,不要紧,下面分别再...
分类:
编程语言 时间:
2015-04-16 10:21:35
阅读次数:
212