Use bitmap instead of array
This commit is contained in:
parent
7384eaccf6
commit
af97ce448c
|
@ -13,16 +13,16 @@ func main() {
|
|||
panic(err)
|
||||
}
|
||||
t0 := time.Now()
|
||||
sieve := make([]bool, n)
|
||||
sieve := make([]uint64, (n>>7)+1)
|
||||
var found int64
|
||||
var i int64
|
||||
i = 2
|
||||
found++
|
||||
for i = 3; i < n; i += 2 {
|
||||
if !sieve[i] {
|
||||
if (sieve[i>>7] & (1 << ((i & 0x7F) >> 1))) == 0 {
|
||||
found++
|
||||
for j := i * i; j < n; j += 2 * i {
|
||||
sieve[j] = true
|
||||
sieve[j>>7] |= 1 << ((j & 0x7F) >> 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue