博客园 首页 私信博主 显示目录 隐藏目录 管理

简单数学总结兼模板【-】

 

  • 埃氏素数筛选法
const int NN = 1e6+10;
int prime[NN]; // prime[i]== 0->i为素数
void init(){
    prime[0] = 1;
    prime[1] = 1;
    for(int i = 2;i<=N/i;i++){ //N/i会更好,比起sqrt(N)因为每次判断都需要计算sqrt,而sqrt计算速度比较慢,i*i<=N就不说了,i*i可能会爆int 数据再大一点的话
        if(prime[i] == 0){
            for(int k = 2*i;k<=N;k+=i){
                prime[k] = 1;
            }
        }
    }
}

 

posted @ 2019-08-06 23:31  木牌选手  阅读(118)  评论(0编辑  收藏  举报