代码拉取完成,页面将自动刷新
同步操作将从 编程语言算法集/Go 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"fmt"
)
//Only works for primes smaller or equal to 10e7
func sieve(upperBound int64) []int64 {
_sieveSize := upperBound + 10
//Creates set to mark wich numbers are primes and wich are not
//true: not primes, false: primes
//this to favor default initialization of arrays in go
var bs [10000010]bool
//creates a slice to save the primes it finds
primes := make([]int64, 0, 1000)
bs[0] = true
bs[1] = true
//iterate over the numbers set
for i := int64(0); i <= _sieveSize; i++ {
//if find one number that is not marked as a compund number, mark all its multiples
if !bs[i] {
for j := i * i; j <= _sieveSize; j += i {
bs[j] = true
}
//Add the prime you just find to the slice of primes
primes = append(primes, i)
}
}
return primes
}
func main() {
//prints first N primes into console
N := 100
primes := sieve(N)
fmt.Println(primes)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。