Go素数筛选分析

打印 上一主题 下一主题

主题 988|帖子 988|积分 2964

Go素数筛选分析

1. 素数筛选介绍

学习Go语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题,是某大佬的代码,短短几行代码就实现了素数筛选。但是自己看完原理和代码后一脸懵逼(仅此几行能实现素数筛选),然后在网上查询相关资料,依旧似懂非懂。经过1天的分析调试,目前基本上掌握了的原理。在这里介绍一下学习理解的过程。
素数筛选基本原理如下图:

就原理来说还是比较简单的,首先生成从 2 开始的递增自然数,然后依次对生成的第 1, 2, 3, ...个素数 整除,经过全部整除仍有余数的自然数,将会是素数。
大佬的代码如下:
[code]// 返回生成自然数序列的管道: 2, 3, 4, ...// GenerateNatural 函数内部启动一个 Goroutine 生产序列,返回对应的管道func GenerateNatural() chan int {        ch := make(chan int)        go func() {                for i := 2; ; i++ {                        ch

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表