以下代码实现的数论筛法及其时间复杂度描述正确的是?

ia994242 单选题 共 个子题

如下代码实现了一种用于求解1~n范围内素数的数论筛法,关于该筛法的说法正确的是:

void get_prime(int n) {
    bool is_prime[100005];
    int prime[100005], cnt = 0;
    memset(is_prime, 1, sizeof(is_prime));
    is_prime[0] = is_prime[1] = 0;
    for(int i = 2; i <= n; i++) {
        if(is_prime[i]) prime[++cnt] = i;
        for(int j = 1; j <= cnt && 1LL * i * prime[j] <= n; j++) {
            is_prime[i * prime[j]] = 0;
            if(i % prime[j] == 0) break;
        }
    }
}
A

埃氏筛法,时间复杂度为O(n log log n)

B

线性筛(欧拉筛)法,时间复杂度为O(n)

C

暴力枚举法,时间复杂度为O(n√n)

D

莫比乌斯函数筛法,时间复杂度为O(n log n)

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧