zoukankan      html  css  js  c++  java
  • 13-素数打表

    void ssdb(){
    	int i, j, k = 0;
    	for(i = 2; i <= sqrt(MAX); i++)
    		for(j = i * i; j <= MAX; j += i)
    			db[j] = 1;
    	for(i = 1; i < MAX; i++)
    		if(db[i] == 0)
    		{
    			ss[k++] = i;
    			printf("%d ", ss[k - 1]);
    		}
    		printf("sushu: %d", k);
    }
    

      

    /*
     * 素数筛选,判断小于 MAXN 的数是不是素数。
     * notprime 是一张表,为 false 表示是素数, true 表示不是素数
     */
     const int MAXN=1000010;
     bool notprime[MAXN];//值为 false 表示素数,值为 true 表示非素数
     void init(){
    	 memset(notprime,false,sizeof(notprime));
    	 notprime[0]=notprime[1]=true;
    	 for(int i=2;i<MAXN;i++)
    		if(!notprime[i]){
    			if(i>MAXN/i)continue;//防止后面 i*i 溢出 (或者 i,j 用 long long)
    		//直接从 i*i 开始就可以,小于 i 倍的已经筛选过了, 注意是 j+=i
    			for(int j=i*i;j<MAXN;j+=i)
    				notprime[j]=true;
    		}
     }
    2.1.2 素数筛选(筛选出小于等于 MAXN 的素数)
    /*
    * 素数筛选,存在小于等于 MAXN 的素数
    * prime[0] 存的是素数的个数
    */
    const int MAXN=10000;
    int prime[MAXN+1];
    void getPrime(){
    	memset(prime,0,sizeof(prime));
    	for(int i=2;i<=MAXN;i++){
    		if(!prime[i])
    			prime[++prime[0]]=i;
    		for(int j=1;j<=prime[0]&&prime[j]<=MAXN/i;j++){
    			prime[prime[j]*i]=1;
    			if(i%prime[j]==0) break;
    		}
    	}
    }
    

      

  • 相关阅读:
    EF系列——DbContext 和DbSet
    EF中的实体关系
    EF中的持久化场景
    Sass
    js里==和===的区别 、sass与less的区别 、style,与class区别(精解版)
    HTML页面加载和解析流程 link与script标签
    DesktopNaotu 百度桌面脑图使用事项
    BootStrap4中使用图标
    Bootstrap4
    CDN文件
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9583740.html
Copyright © 2011-2022 走看看