Last active
December 31, 2016 16:55
-
-
Save mattn/ef9827c3e87ad8a33e96890e6b577655 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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