我正在尝试实现一种算法来查找低于某个限制的所有素数。但是,当达到限制时,46350
我突然收到一条out of range
错误消息:
panic: runtime error: index out of range
goroutine 1 [running]:
main.main()
/tmpfs/gosandbox-433...fd004/prog.go:16 +0x1a8
任何帮助我指出这里有什么问题都值得赞赏(这个神奇的数字46350
是从哪里来的?)。
要重现将以下代码放入谷歌沙箱并取消注释limit++
(或使用此链接):
package main
func main() {
limit := 46349
//limit++
sieved_numbers := make([]bool, limit)
var j = 0
var i = 2
for ; i < limit; i++ {
if !sieved_numbers[i] {
for j = i * i; j < limit;j += i {
sieved_numbers[j] = true
}
}
}
}