Skip to content

Instantly share code, notes, and snippets.

@mattn
Last active December 31, 2016 16:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattn/ef9827c3e87ad8a33e96890e6b577655 to your computer and use it in GitHub Desktop.
Save mattn/ef9827c3e87ad8a33e96890e6b577655 to your computer and use it in GitHub Desktop.
BenchmarkPrimeNumber1-4 2000000 1096 ns/op
BenchmarkPrimeNumber1-4 2000000 1089 ns/op
BenchmarkPrimeNumber1-4 2000000 1094 ns/op
BenchmarkPrimeNumber1-4 2000000 1089 ns/op
BenchmarkPrimeNumber1-4 2000000 1117 ns/op
BenchmarkPrimeNumber1-4 2000000 1123 ns/op
BenchmarkPrimeNumber1-4 2000000 1164 ns/op
BenchmarkPrimeNumber1-4 2000000 1091 ns/op
BenchmarkPrimeNumber1-4 2000000 1087 ns/op
BenchmarkPrimeNumber1-4 2000000 1094 ns/op
BenchmarkPrimeNumber2-4 2000000 1045 ns/op
BenchmarkPrimeNumber2-4 2000000 1038 ns/op
BenchmarkPrimeNumber2-4 2000000 1051 ns/op
BenchmarkPrimeNumber2-4 2000000 1035 ns/op
BenchmarkPrimeNumber2-4 2000000 1042 ns/op
BenchmarkPrimeNumber2-4 2000000 1038 ns/op
BenchmarkPrimeNumber2-4 2000000 1034 ns/op
BenchmarkPrimeNumber2-4 2000000 1119 ns/op
BenchmarkPrimeNumber2-4 2000000 1179 ns/op
BenchmarkPrimeNumber2-4 2000000 1038 ns/op
PASS
ok github.com/mattn/go-sandbox/prime 59.978s
package prime
import (
"math"
"testing"
)
func checkPrimeNumber1(n int) bool {
for i := 2; i <= int(math.Sqrt(float64(n))); i++ {
if int(n/i)*i == n {
return false
}
}
return true
}
func checkPrimeNumber2(n int) bool {
if n <= 3 || n == 5 {
return true
}
for i := 7; i <= int(math.Sqrt(float64(n))); i += 30 {
if n%i == 0 || n%(i+4) == 0 || n%(i+6) == 0 || n%(i+10) == 0 ||
n%(i+12) == 0 || n%(i+16) == 0 || n%(i+22) == 0 || n%(i+24) == 0 {
return false
}
}
return true
}
func BenchmarkPrimeNumber1(b *testing.B) {
b.ResetTimer()
for i := 2; i < b.N; i++ {
checkPrimeNumber1(i)
}
}
func BenchmarkPrimeNumber2(b *testing.B) {
b.ResetTimer()
for i := 2; i < b.N; i++ {
checkPrimeNumber2(i)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment