文章

5

粉丝

318

获赞

3

访问

53.0k

头像
本方法用了O(n)求素数
P1489 北京邮电大学2018年机试题
发布于2020年3月12日 19:39
阅读数 9.1k

#include <iostream>
#include <vector>
#include <cstring>

using namespace std;

const int MAXN = 40001;
vector<int> lucky;
int prime[MAXN];
int is_prime[400000];

void ola_prime(){//线性求素数,用到两个数组
    memset(is_prime,0,sizeof(is_prime));
    int index = 0;
    for(int i=2;i<400000;i++){
        if(is_prime[i] == 0){
            prime[index] = i;
            index++;
        }
        for(int j=0;j<index && prime[j]*i<400000;j++){
            is_prime[prime[j]*i] = 1;
            if(i % prime[j] == 0){
                break;
      ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发