首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2021-10-25:计数质数。统计所有小于非负整数 n 的质数的数量。力扣204。

2021-10-25:计数质数。统计所有小于非负整数 n 的质数的数量。力扣204。

作者头像
福大大架构师每日一题
发布2021-10-28 10:15:55
发布2021-10-28 10:15:55
4960
举报

2021-10-25:计数质数。统计所有小于非负整数 n 的质数的数量。力扣204。

福大大 答案2021-10-25:

自然智慧即可。从i从3开始遍历,每次加2,i*i<n。

代码用golang编写。代码如下:

代码语言:javascript
复制
package main

import "fmt"

func main() {
    n := 12
    ret := countPrimes(n)
    fmt.Println(ret)
}

func countPrimes(n int) int {
    if n < 3 {
        return 0
    }
    // j已经不是素数了,f[j] = true;
    f := make([]bool, n)
    count := n / 2 // 所有偶数都不要,还剩几个数
    // 跳过了1、2    3、5、7、
    for i := 3; i*i < n; i += 2 {
        if f[i] {
            continue
        }
        // 3 -> 3 * 3 = 9   3 * 5 = 15   3 * 7 = 21
        // 7 -> 7 * 7 = 49  7 * 9 = 63
        // 13 -> 13 * 13  13 * 15
        for j := i * i; j < n; j += 2 * i {
            if !f[j] {
                count--
                f[j] = true
            }
        }
    }
    return count
}

执行结果如下:

[左神java代码](https://github.com/algorithmzuo/coding-for-great-offer/blob/main/src/class32/SequenceM.java)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档