speed up for go

This commit is contained in:
Dan Ballard 2014-01-16 07:53:44 -05:00
parent 6dc292bc10
commit 0467c64d21
1 changed files with 7 additions and 1 deletions

View File

@ -9,11 +9,16 @@ import(
"math" "math"
) )
// In stead of in place printing of each prime, it seems
// fmt.Println is costly, and causes the program to take
// 7x more time, so we gain speed at the expense of RAM
// by storing them all in a slice and printing once
func main() { func main() {
if len(os.Args) < 2 { if len(os.Args) < 2 {
fmt.Println("Usage: go run primes.go [MAX]") fmt.Println("Usage: go run primes.go [MAX]")
return return
} }
primes := make([]int, 0)
max,_ := strconv.Atoi(os.Args[1]) max,_ := strconv.Atoi(os.Args[1])
for i:= 3; i < max; i+=2 { for i:= 3; i < max; i+=2 {
is_prime := true is_prime := true
@ -24,7 +29,8 @@ func main() {
} }
} }
if is_prime { if is_prime {
fmt.Println(i) primes = append(primes, i)
} }
} }
fmt.Println(primes)
} }