go中有一个更好的并发素数筛子

ano*_*ous 13 algorithm go

在查看素数筛选代码,并了解并发结构如何工作后,我发现它非常优雅.然而,它也是非常低效的,IIRC,等同于O(n ^ 2)操作,通过将数除以每个小于m的数来测试数m的可除性.我想我可以修改它以使用O(n ^ 1.5)操作来检查m的可分性,将其除以小于或等于sqrt(m)的每个数.然而,事实证明这比我预期的要困难得多.

我知道这更像是一个算法问题,但它也是一个与并发性极为相关的问题.如何实现算法的O(n ^ 1.5)版本?

pet*_*rSO 3

stackoverflow是一个值得一看的地方,例如,问题Concurrent Prime Generator。答案之一是使用Go 和channels