素数的筛选

来源:互联网 发布:网络骗术有那些 编辑:程序博客网 时间:2024/05/20 03:42

看LRJ书上看到了一个素数定理:

π(n) ~ x/ln(x),自己敲代码验证了一下,果然是这样的(这不是废话么)

筛选代码:

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>#include<stack>#include<queue>#include<map>#include<set>#include<list>#include<string>#include<cmath>#include<sstream>#include<ctime>using namespace std;#define _PI acos(-1.0)#define INF 1 << 10#define esp 1e-6typedef long long LL;typedef unsigned long long ULL;typedef pair<int,int> pill;/*======================================================================================*/#define MAX_SIZE 100000000 + 1int vis[MAX_SIZE];LL Get_PrimeNumber(int MAXD){    memset(vis,0,sizeof(vis));    LL ans = 0;    for(LL i = 2 ; i < MAXD ; i++)if(!vis[i]){ /*如果只是单纯的筛选素数 这里 i <= sqrt(MAXD) */        ans ++;        for(LL j = i * i ; j < MAXD ; j += i)            vis[j] = 1;    }    return ans;}int main(){    int T;    int text[] = {100,1000,10000,100000,1000000,10000000,100000000};    for(int i = 0 ; i < 7 ; i ++){        LL ans = Get_PrimeNumber(text[i] + 1);        printf("[1 ~ %d ]:%I64d\n",text[i],ans);    }    return 0;}

0 0
原创粉丝点击