• 素数筛选


    主要有两种一种是埃氏筛选法,一种是欧拉筛选法,欧拉筛选法是埃式筛选法的改进。

    #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int MAXN=1000; bool isPrime[MAXN]; int Prime[MAXN]; int PriN;
    //埃式筛选法
    void solve(int N){ PriN=0; memset(isPrime,true,sizeof(isPrime)); isPrime[0]=isPrime[1]=false; for(int i=2;i<=N;i++){ if(isPrime[i]){ Prime[PriN++]=i; for(int j=i*i;j<=N;j+=i) isPrime[j]=false; } } }
    //欧拉筛选法
    void Eular(int N){ PriN=0; memset(isPrime,true,sizeof(isPrime)); isPrime[0]=isPrime[1]=false; for(int i=2;i<=N;i++){ if(isPrime[i]) Prime[PriN++]=i; for(int j=0;j<PriN;j++){ if(i*Prime[j]>N) break; isPrime[i*Prime[j]]=0; if(i*Prime[j]==0) break; } } } int main(){ int N=100; solve(N); for(int i=0;i<PriN;i++) cout<<Prime[i]<<" "; cout<<endl; cout<<"-----------------------------------------"<<endl; Eular(N); for(int i=0;i<PriN;i++) cout<<Prime[i]<<" "; cout<<endl; }
  • 相关阅读:
    C语言与水仙花数
    C语言break和continue
    C语言中常量
    C语言中计算变量占用内存空间
    C语言中if语句
    JavaScript放置位置区别
    单选按钮中实现点击文字选中
    C语言(4)
    C语言(3)
    【第四课】kaggle案例分析四
  • 原文地址:https://www.cnblogs.com/IKnowYou0/p/6673351.html
Copyright © 2020-2023  润新知