Created
July 3, 2011 13:22
-
-
Save kmmbvnr/1062220 to your computer and use it in GitHub Desktop.
Project euler solutions in Google GO
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
( | |
(go-mode . ( | |
(compile-command . "go-runner -c main.go")) | |
) | |
) |
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
*/.go |
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
Project Euler (http://projecteuler.net/) solutions implemented in google Go language | |
To run each solution use go-runner (https://github.com/ZoAmichi/go-runner) | |
cd XXX # Ex: 002 for second problem | |
go-runner main.go |
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 binomial | |
func C(n, k uint64) uint64 { | |
if k > n - k { // take advantage of symmetry | |
k = n - k | |
} | |
result := uint64(1) | |
for i:=uint64(0); i<k; i++ { | |
result *= n - i | |
result /= i + 1 | |
} | |
return result | |
} |
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 binomial | |
func C(n, k uint64) uint64 { | |
if k > n - k { // take advantage of symmetry | |
k = n - k | |
} | |
result := uint64(1) | |
for i:=uint64(0); i<k; i++ { | |
result *= n - i | |
result /= i + 1 | |
} | |
return result | |
} |
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
79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,71,89,68,32,0,0,71,28,1,9,27,68,45,0,12,9,79,16,15,10,68,37,14,20,19,6,23,19,79,83,71,27,11,71,27,1,11,3,68,2,25,1,21,22,11,9,10,68,6,13,11,18,27,68,19,7,1,71,3,13,0,7,16,71,28,11,71,27,12,6,27,68,2,25,1,21,22,11,9,10,68,10,6,3,15,27,68,5,10,8,14,10,18,2,79,6,2,12,5,18,28,1,71,0,2,71,7,13,20,79,16,2,28,16,14,2,11,9,22,74,71,87,68,45,0,12,9,79,12,14,2,23,2,3,2,71,24,5,20,79,10,8,27,68,19,7,1,71,3,13,0,7,16,92,79,12,2,79,19,6,28,68,8,1,8,30,79,5,71,24,13,19,1,1,20,28,68,19,0,68,19,7,1,71,3,13,0,7,16,73,79,93,71,59,12,2,79,11,9,10,68,16,7,11,71,6,23,71,27,12,2,79,16,21,26,1,71,3,13,0,7,16,75,79,19,15,0,68,0,6,18,2,28,68,11,6,3,15,27,68,19,0,68,2,25,1,21,22,11,9,10,72,71,24,5,20,79,3,8,6,10,0,79,16,8,79,7,8,2,1,71,6,10,19,0,68,19,7,1,71,24,11,21,3,0,73,79,85,87,79,38,18,27,68,6,3,16,15,0,17,0,7,68,19,7,1,71,24,11,21,3,0,71,24,5,20,79,9,6,11,1,71,27,12,21,0,17,0,7,68,15,6,9,75,79,16,15,10,68,16,0,22,11,11,68,3,6,0,9,72,16,71,29,1,4,0,3,9,6,30,2,79,12,14,2,68,16,7,1,9,79,12,2,79,7,6,2,1,73,79,85,86,79,33,17,10,10,71,6,10,71,7,13,20,79,11,16,1,68,11,14,10,3,79,5,9,11,68,6,2,11,9,8,68,15,6,23,71,0,19,9,79,20,2,0,20,11,10,72,71,7,1,71,24,5,20,79,10,8,27,68,6,12,7,2,31,16,2,11,74,71,94,86,71,45,17,19,79,16,8,79,5,11,3,68,16,7,11,71,13,1,11,6,1,17,10,0,71,7,13,10,79,5,9,11,68,6,12,7,2,31,16,2,11,68,15,6,9,75,79,12,2,79,3,6,25,1,71,27,12,2,79,22,14,8,12,19,79,16,8,79,6,2,12,11,10,10,68,4,7,13,11,11,22,2,1,68,8,9,68,32,0,0,73,79,85,84,79,48,15,10,29,71,14,22,2,79,22,2,13,11,21,1,69,71,59,12,14,28,68,14,28,68,9,0,16,71,14,68,23,7,29,20,6,7,6,3,68,5,6,22,19,7,68,21,10,23,18,3,16,14,1,3,71,9,22,8,2,68,15,26,9,6,1,68,23,14,23,20,6,11,9,79,11,21,79,20,11,14,10,75,79,16,15,6,23,71,29,1,5,6,22,19,7,68,4,0,9,2,28,68,1,29,11,10,79,35,8,11,74,86,91,68,52,0,68,19,7,1,71,56,11,21,11,68,5,10,7,6,2,1,71,7,17,10,14,10,71,14,10,3,79,8,14,25,1,3,79,12,2,29,1,71,0,10,71,10,5,21,27,12,71,14,9,8,1,3,71,26,23,73,79,44,2,79,19,6,28,68,1,26,8,11,79,11,1,79,17,9,9,5,14,3,13,9,8,68,11,0,18,2,79,5,9,11,68,1,14,13,19,7,2,18,3,10,2,28,23,73,79,37,9,11,68,16,10,68,15,14,18,2,79,23,2,10,10,71,7,13,20,79,3,11,0,22,30,67,68,19,7,1,71,8,8,8,29,29,71,0,2,71,27,12,2,79,11,9,3,29,71,60,11,9,79,11,1,79,16,15,10,68,33,14,16,15,10,22,73 |
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 functional; | |
func CreateStream(start int, step int) chan int { | |
ch := make(chan int) | |
go func() { | |
for i:=start; ; i+=step { | |
ch <- i | |
} | |
}() | |
return ch | |
} | |
func TakeWhile(input chan int, p func(int) bool) chan int { | |
output := make(chan int) | |
go func() { | |
for ;; { | |
v := <- input | |
if !p(v) { | |
break | |
} | |
output <- v | |
} | |
close(output) | |
}() | |
return output | |
} | |
func SumStream(input chan int) int { | |
result := 0 | |
for v := range input { | |
result += v | |
} | |
return result | |
} |
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 functional; | |
func FibonacciStream() chan int { | |
ch := make(chan int) | |
first, second := 1, 1 | |
go func() { | |
for ;; { | |
ch <- first | |
first, second = second, first + second | |
} | |
}() | |
return ch | |
} | |
func TakeWhile(input chan int, p func(int) bool) chan int { | |
output := make(chan int) | |
go func() { | |
for v := range input { | |
if !p(v) { | |
break | |
} | |
output <- v | |
} | |
close(output) | |
}() | |
return output | |
} | |
func TakeIf(input chan int, p func(int) bool) chan int { | |
output := make(chan int) | |
go func() { | |
for v := range input { | |
if p(v) { | |
output <- v | |
} | |
} | |
close(output) | |
}() | |
return output | |
} | |
func SumStream(input chan int) int { | |
result := 0 | |
for v := range input { | |
result += v | |
} | |
return result | |
} |
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 main; | |
import ( | |
"fmt" | |
"functional" | |
) | |
func main() { | |
max := 1000 | |
max_p := func(v int) bool { return v < max } | |
ch3 := functional.TakeWhile(functional.CreateStream(3,3), max_p) | |
ch5 := functional.TakeWhile(functional.CreateStream(5,5), max_p) | |
ch15 := functional.TakeWhile(functional.CreateStream(15, 15), max_p) | |
result := functional.SumStream(ch3) + functional.SumStream(ch5) - functional.SumStream(ch15) | |
fmt.Println(result) | |
} |
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 main; | |
import ( | |
"fmt" | |
"functional" | |
) | |
func main() { | |
max := 4000000 | |
max_p := func(v int) bool { return v < max } | |
even_p := func(v int) bool { return v%2 == 0 } | |
ch := functional.TakeWhile(functional.TakeIf(functional.FibonacciStream(), even_p), max_p) | |
result := functional.SumStream(ch) | |
fmt.Println(result) | |
} |
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 main; | |
import "fmt" | |
func main() { | |
var divisor, num int64 = 2, 600851475143 | |
for ; divisor < num/divisor; divisor++ { | |
if num%divisor == 0 { | |
num /= divisor | |
} | |
} | |
fmt.Println(num) | |
} |
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 main; | |
import "fmt" | |
func main() { | |
var result int | |
root: | |
for a:=9; a>=1; a-- { | |
for b:=9; b>=1; b-- { | |
for c:=9; c>=1; c-- { | |
num:=9091*a + 910*b + 100*c | |
for divider:=900; divider>=100; divider-- { | |
if num%divider == 0 { | |
result = num | |
break root | |
} | |
} | |
} | |
} | |
} | |
fmt.Println(result) | |
} |
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 main; | |
import "fmt" | |
func main() { | |
result := 1 | |
for k:=2; k<=20; k++ { | |
if result % k > 0 { | |
for j:=2; j<=k; j++ { | |
if (result*j)%k == 0 { | |
result *= j | |
} | |
} | |
} | |
} | |
fmt.Println(result) | |
} |
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 main; | |
import "fmt" | |
func main() { | |
sum := 0 | |
sum_of_squares := 0 | |
for i:=1; i<=100; i++ { | |
sum += i | |
sum_of_squares += i*i | |
} | |
fmt.Println(sum*sum - sum_of_squares) | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
) | |
func main() { | |
primes := primesvec.Create(1000000) | |
primes.Sieve() | |
count := 0 | |
for p:=uint32(2); p!=0; p=primes.Next(p) { | |
count++ | |
if count == 10001 { | |
fmt.Println(p) | |
break | |
} | |
} | |
} |
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 main; | |
import "fmt" | |
const bignum = "73167176531330624919225119674426574742355349194934" + | |
"96983520312774506326239578318016984801869478851843" + | |
"85861560789112949495459501737958331952853208805511" + | |
"12540698747158523863050715693290963295227443043557" + | |
"66896648950445244523161731856403098711121722383113" + | |
"62229893423380308135336276614282806444486645238749" + | |
"30358907296290491560440772390713810515859307960866" + | |
"70172427121883998797908792274921901699720888093776" + | |
"65727333001053367881220235421809751254540594752243" + | |
"52584907711670556013604839586446706324415722155397" + | |
"53697817977846174064955149290862569321978468622482" + | |
"83972241375657056057490261407972968652414535100474" + | |
"82166370484403199890008895243450658541227588666881" + | |
"16427171479924442928230863465674813919123162824586" + | |
"17866458359124566529476545682848912883142607690042" + | |
"24219022671055626321111109370544217506941658960408" + | |
"07198403850962455444362981230987879927244284909188" + | |
"84580156166097919133875499200524063689912560717606" + | |
"05886116467109405077541002256983155200055935729725" + | |
"71636269561882670428252483600823257530420752963450" | |
func main() { | |
max_value := 0 | |
for start:=1; start<len(bignum)-5; start++ { | |
curr_value := 1 | |
for pos:=0; pos<5; pos++ { | |
curr_value *= int(bignum[start+pos]) - 48 // decode ascii numbers | |
} | |
if curr_value > max_value { | |
max_value = curr_value | |
} | |
} | |
fmt.Println(max_value) | |
} | |
// Local variables: | |
// compile-command: "go-runner -c main.go" | |
// End: |
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 main; | |
import "fmt" | |
func main() { | |
var m,n int | |
p := 1000 | |
root: | |
for n=1; n<p/2; n++ { | |
for m=n; m<p/2; m++ { | |
if m*(m+n) == p/2 { | |
break root | |
} | |
} | |
} | |
a := 2*m*n | |
b := m*m - n*n | |
c := m*m + n*n | |
fmt.Println(a*b*c) | |
} |
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 main; | |
import "fmt" | |
import "primesvec" | |
func main() { | |
primes := primesvec.Create(2000000) | |
primes.Sieve() | |
sum := uint64(0) | |
for p:=uint32(2); p!=0; p=primes.Next(p) { | |
sum += uint64(p) | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import "fmt" | |
type Direction struct { x,y int } | |
var grid = [][]int{ | |
{ 8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8}, | |
{ 49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0}, | |
{ 81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65}, | |
{ 52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91}, | |
{ 22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80}, | |
{ 24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50}, | |
{ 32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70}, | |
{ 67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21}, | |
{ 24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72}, | |
{ 21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95}, | |
{ 78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92}, | |
{ 16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57}, | |
{ 86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58}, | |
{ 19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40}, | |
{ 4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66}, | |
{ 88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69}, | |
{ 4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36}, | |
{ 20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16}, | |
{ 20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54}, | |
{ 1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48}} | |
var grid_size = len(grid) | |
func main() { | |
max_value := 0 | |
directions := []Direction { {0,1}, {1,0}, {1,1}, {-1, 1} } | |
for _, direction := range directions { | |
for x:=0; x<grid_size; x++ { | |
if x+3*direction.x >= grid_size || x+3*direction.x < 0 { | |
continue | |
} | |
for y:=0; y<grid_size; y++ { | |
if y+3*direction.y >= grid_size || y+3*direction.y < 0 { | |
continue | |
} | |
curr_value := 1 | |
for n:=0; n<4; n++ { | |
curr_value *= grid[y+n*direction.y][x+n*direction.x] | |
} | |
if curr_value > max_value { | |
max_value = curr_value | |
} | |
} | |
} | |
} | |
fmt.Println(max_value) | |
} |
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 main; | |
import "fmt" | |
import "primesvec" | |
func main() { | |
primes := primesvec.Create(1000000) | |
primes.Sieve() | |
num := uint32(1) | |
sum := uint32(1) | |
for count := uint32(1); count <= 500; count=primes.FactorsCount(sum) { | |
if count == 0 { | |
num = 0 | |
break | |
} | |
num ++ | |
sum += num | |
} | |
if num != 0 { | |
fmt.Println(sum) | |
} | |
} |
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 main; | |
import "fmt" | |
import "strconv" | |
var nums = []string{ | |
"37107287533902102798797998220837590246510135740250", | |
"46376937677490009712648124896970078050417018260538", | |
"74324986199524741059474233309513058123726617309629", | |
"91942213363574161572522430563301811072406154908250", | |
"23067588207539346171171980310421047513778063246676", | |
"89261670696623633820136378418383684178734361726757", | |
"28112879812849979408065481931592621691275889832738", | |
"44274228917432520321923589422876796487670272189318", | |
"47451445736001306439091167216856844588711603153276", | |
"70386486105843025439939619828917593665686757934951", | |
"62176457141856560629502157223196586755079324193331", | |
"64906352462741904929101432445813822663347944758178", | |
"92575867718337217661963751590579239728245598838407", | |
"58203565325359399008402633568948830189458628227828", | |
"80181199384826282014278194139940567587151170094390", | |
"35398664372827112653829987240784473053190104293586", | |
"86515506006295864861532075273371959191420517255829", | |
"71693888707715466499115593487603532921714970056938", | |
"54370070576826684624621495650076471787294438377604", | |
"53282654108756828443191190634694037855217779295145", | |
"36123272525000296071075082563815656710885258350721", | |
"45876576172410976447339110607218265236877223636045", | |
"17423706905851860660448207621209813287860733969412", | |
"81142660418086830619328460811191061556940512689692", | |
"51934325451728388641918047049293215058642563049483", | |
"62467221648435076201727918039944693004732956340691", | |
"15732444386908125794514089057706229429197107928209", | |
"55037687525678773091862540744969844508330393682126", | |
"18336384825330154686196124348767681297534375946515", | |
"80386287592878490201521685554828717201219257766954", | |
"78182833757993103614740356856449095527097864797581", | |
"16726320100436897842553539920931837441497806860984", | |
"48403098129077791799088218795327364475675590848030", | |
"87086987551392711854517078544161852424320693150332", | |
"59959406895756536782107074926966537676326235447210", | |
"69793950679652694742597709739166693763042633987085", | |
"41052684708299085211399427365734116182760315001271", | |
"65378607361501080857009149939512557028198746004375", | |
"35829035317434717326932123578154982629742552737307", | |
"94953759765105305946966067683156574377167401875275", | |
"88902802571733229619176668713819931811048770190271", | |
"25267680276078003013678680992525463401061632866526", | |
"36270218540497705585629946580636237993140746255962", | |
"24074486908231174977792365466257246923322810917141", | |
"91430288197103288597806669760892938638285025333403", | |
"34413065578016127815921815005561868836468420090470", | |
"23053081172816430487623791969842487255036638784583", | |
"11487696932154902810424020138335124462181441773470", | |
"63783299490636259666498587618221225225512486764533", | |
"67720186971698544312419572409913959008952310058822", | |
"95548255300263520781532296796249481641953868218774", | |
"76085327132285723110424803456124867697064507995236", | |
"37774242535411291684276865538926205024910326572967", | |
"23701913275725675285653248258265463092207058596522", | |
"29798860272258331913126375147341994889534765745501", | |
"18495701454879288984856827726077713721403798879715", | |
"38298203783031473527721580348144513491373226651381", | |
"34829543829199918180278916522431027392251122869539", | |
"40957953066405232632538044100059654939159879593635", | |
"29746152185502371307642255121183693803580388584903", | |
"41698116222072977186158236678424689157993532961922", | |
"62467957194401269043877107275048102390895523597457", | |
"23189706772547915061505504953922979530901129967519", | |
"86188088225875314529584099251203829009407770775672", | |
"11306739708304724483816533873502340845647058077308", | |
"82959174767140363198008187129011875491310547126581", | |
"97623331044818386269515456334926366572897563400500", | |
"42846280183517070527831839425882145521227251250327", | |
"55121603546981200581762165212827652751691296897789", | |
"32238195734329339946437501907836945765883352399886", | |
"75506164965184775180738168837861091527357929701337", | |
"62177842752192623401942399639168044983993173312731", | |
"32924185707147349566916674687634660915035914677504", | |
"99518671430235219628894890102423325116913619626622", | |
"73267460800591547471830798392868535206946944540724", | |
"76841822524674417161514036427982273348055556214818", | |
"97142617910342598647204516893989422179826088076852", | |
"87783646182799346313767754307809363333018982642090", | |
"10848802521674670883215120185883543223812876952786", | |
"71329612474782464538636993009049310363619763878039", | |
"62184073572399794223406235393808339651327408011116", | |
"66627891981488087797941876876144230030984490851411", | |
"60661826293682836764744779239180335110989069790714", | |
"85786944089552990653640447425576083659976645795096", | |
"66024396409905389607120198219976047599490197230297", | |
"64913982680032973156037120041377903785566085089252", | |
"16730939319872750275468906903707539413042652315011", | |
"94809377245048795150954100921645863754710598436791", | |
"78639167021187492431995700641917969777599028300699", | |
"15368713711936614952811305876380278410754449733078", | |
"40789923115535562561142322423255033685442488917353", | |
"44889911501440648020369068063960672322193204149535", | |
"41503128880339536053299340368006977710650566631954", | |
"81234880673210146739058568557934581403627822703280", | |
"82616570773948327592232845941706525094512325230608", | |
"22918802058777319719839450180888072429661980811197", | |
"77158542502016545090413245809786882778948721859617", | |
"72107838435069186155435662884062257473692284509516", | |
"20849603980134001723930671666823555245252804609722", | |
"53503534226472524250874054075591789781264330331690" } | |
func main() { | |
sum := int64(0) | |
for _, num := range nums { | |
value, _ := strconv.Atoi64(num[0:11]) | |
sum += value | |
} | |
fmt.Println(sum/1000) | |
} |
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 main | |
import "fmt" | |
func next_value(n uint64) (result uint64) { | |
if n%2 == 0 { | |
result = n/2 | |
} else { | |
result = 3*n + 1 | |
} | |
return result | |
} | |
func main() { | |
max_elem := uint64(1000000) | |
length_data := make([]int, max_elem+1) | |
for n:=uint64(1); n<=max_elem; n++ { | |
current_length := 1 | |
for k:=next_value(n); k!=1; k=next_value(k) { | |
if k<n && length_data[k] != 0 { | |
current_length += length_data[k] | |
break | |
} | |
current_length++ | |
} | |
length_data[n] = current_length | |
} | |
max_num := 0 | |
max_value := 0 | |
for n, v := range length_data { | |
if v>max_value { | |
max_num, max_value = n, v | |
} | |
} | |
fmt.Println(max_num) | |
} |
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 main | |
import "fmt" | |
import "binomial" | |
/* | |
* Each route has exactly 40 steps, with 20 of them horizontal and | |
* 20 of them vertical. We need to count how many different ways there | |
* are of choosing which steps are horizontal and which are vertical. | |
*/ | |
func main() { | |
fmt.Println(binomial.C(40, 20)) | |
} |
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 main | |
import "fmt" | |
import "big" | |
func main() { | |
pow_2 := big.NewInt(0) | |
pow_2.Exp(big.NewInt(2), big.NewInt(1000), nil) | |
sum := 0 | |
for _, v := range pow_2.String() { | |
sum += v-48 | |
} | |
fmt.Println(sum) | |
} |
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 main | |
import "fmt" | |
func main() { | |
words := map[int] string { | |
0:"", 1:"one", 2:"two", 3:"three", 4:"four", 5:"five", | |
6:"six", 7:"seven", 8:"eight", 9:"nine", 10:"ten", | |
11:"eleven", 12:"twelve", 13:"thirteen",14:"fourteen", | |
15:"fifteen", 16:"sixteen", 17:"seventeen", 18:"eighteen", | |
19:"nineteen", 20:"twenty", 30:"thirty", 40:"forty", 50:"fifty", | |
60:"sixty", 70:"seventy", 80:"eighty", 90:"ninety" } | |
for i:=1; i<1000; i++ { | |
if _, ok:=words[i]; !ok { | |
if i<100 { | |
words[i] = words[i/10*10] + words[i%10] | |
} else { | |
words[i] = words[i/100] + "hundred" | |
if i%100!=0 { | |
words[i] += "and"+words[i%100] | |
} | |
} | |
} | |
} | |
words[1000] = "onethousand" | |
sum := 0 | |
for i:=1;i<=1000;i++ { | |
sum += len(words[i]) | |
} | |
fmt.Println(sum) | |
} |
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 main | |
import "fmt" | |
type Position struct { x,y uint } | |
var triangle = [][]int { | |
{ 75 }, | |
{ 95, 64 }, | |
{ 17, 47, 82}, | |
{ 18, 35, 87, 10 }, | |
{ 20, 4, 82, 47, 65}, | |
{ 19, 1, 23, 75, 03, 34 }, | |
{ 88, 02, 77, 73, 07, 63, 67 }, | |
{ 99, 65, 4, 28, 06, 16, 70, 92 }, | |
{ 41, 41, 26, 56, 83, 40, 80, 70, 33 }, | |
{ 41, 48, 72, 33, 47, 32, 37, 16, 94, 29 }, | |
{ 53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14 }, | |
{ 70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57 }, | |
{ 91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48 }, | |
{ 63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31 }, | |
{ 4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23 } } | |
func max(x,y int) int { | |
if x>y { | |
return x | |
} | |
return y | |
} | |
func main() { | |
totals := triangle[len(triangle)-1] | |
for y:=len(triangle)-2; y>=0; y-- { | |
for x:=0; x<=y; x++ { | |
totals[x] = triangle[y][x] + max(totals[x], totals[x+1]) | |
} | |
} | |
fmt.Println(totals[0]) | |
} |
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 main; | |
import "fmt" | |
/* compute the total number of days in all the months in all the years | |
* and check if this total less than one is divisible by 7. If it is, | |
* then that month's first day is a sunday. | |
*/ | |
func is_leap(year int) bool { | |
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) | |
} | |
func main() { | |
non_leap := []int{31,28,31,30,31,30,31,31,30,31,30,31} | |
leap := []int{31,29,31,30,31,30,31,31,30,31,30,31} | |
day:=2 // 1 Jan 1901 is Tuesday | |
count:=0 | |
for year:=1901; year<=2000; year++ { | |
for month:=1; month<=12; month++ { | |
if is_leap(year) { | |
day += leap[month-1]%7 | |
} else { | |
day += non_leap[month-1]%7 | |
} | |
if day%7==0 { | |
count+=1 | |
} | |
} | |
} | |
fmt.Println(count) | |
} |
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 main; | |
import "fmt" | |
import "big" | |
/* | |
* Find the sum of the digits in the number 100! | |
*/ | |
func main() { | |
var num big.Int | |
digits := num.MulRange(1, 100).String() | |
sum := 0 | |
for _, v := range digits { | |
sum += v - 48 // decode ascii numbers | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import "fmt" | |
import "math" | |
func divsum(n int) (sum int) { | |
sum += 1 | |
for k:=2; k<int(math.Sqrt(float64(n)))+1; k++ { | |
if n%k==0 { | |
sum += k + n/k | |
} | |
} | |
return | |
} | |
/* | |
* Let d(n) be defined as the sum of proper divisors of n (numbers | |
* less than n which divide evenly into n). | |
* | |
* If d(a) = b and d(b) = a,where a b, then a and b are an amicable | |
* pair and each of a and b arecalled amicable numbers. | |
* | |
* Evaluate the sum of all the amicable numbers under 10000. | |
*/ | |
func main() { sum := 0 | |
for n:=1; n<=10000; n++ { | |
amicable := divsum(n) | |
if n != amicable && divsum(amicable) == n { | |
sum += n | |
} | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"io/ioutil" | |
"sort" | |
"strings" | |
) | |
func main() { | |
filename := "names.txt" | |
content, _ := ioutil.ReadFile(filename) | |
names := strings.Split(strings.Replace(string(content), "\"", "", -1), ",", -1) | |
sort.Sort(sort.StringArray(names)) | |
sum := 0 | |
for pos, name := range names { | |
word_worth := 0 | |
for _, ch := range name { | |
word_worth += ch-64 // convert ascii to alphabet position | |
} | |
sum += word_worth * (pos+1) | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"math" | |
) | |
const max_abundant_sum = 28124 | |
func divsum(n int) (sum int) { | |
sum += 1 | |
for k:=2; k<int(math.Sqrt(float64(n)))+1; k++ { | |
if n%k==0 { | |
sum += k | |
if n/k != k { | |
sum += n/k | |
} | |
} | |
} | |
return | |
} | |
func main() { | |
abundants := make(map[int]bool) | |
for n:=1; n<=max_abundant_sum; n++ { | |
if divsum(n)>n { | |
abundants[n] = true | |
} | |
} | |
can_be_sum := func(n int) bool { | |
for a, _ := range abundants { | |
_, exists := abundants[n-a] | |
if exists { | |
return true | |
} | |
} | |
return false | |
} | |
sum := 0 | |
for n:=1; n<=max_abundant_sum; n++ { | |
if !can_be_sum(n) { | |
sum += n | |
} | |
} | |
fmt.Print(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
) | |
func fact(n int) int { | |
result := 1 | |
for i:=2; i<=n; i++ { | |
result *= i | |
} | |
return result | |
} | |
/* | |
* Represend k as k = f[0]*1! + f[1]*2! + ... + f[n-1]*n! | |
*/ | |
func fact_decompose(k, n int) []int { | |
result := make([]int, 0, 10) | |
for i:=1; i<=n; i++ { | |
result = append(result, k%i) | |
k /= i | |
} | |
return result | |
} | |
/* | |
* Converts fact number decomposition to corresponing permutation | |
*/ | |
func show_permutation(fc []int) []int { | |
result := make([]int, len(fc)) | |
for i:=0; i<len(fc); i++ { | |
result[i] = fc[len(fc)-i-1] | |
} | |
for i:= len(fc)-1; i>=0; i-- { | |
for j := i+1; j<len(fc); j++ { | |
if result[j] >= result[i] { | |
result[j] += 1 | |
} | |
} | |
} | |
return result | |
} | |
func main() { | |
fmt.Println(show_permutation(fact_decompose(999999, 10))) | |
} |
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 main; | |
import ( | |
"fmt" | |
"big" | |
) | |
func FibonacciStream() chan *big.Int { | |
ch := make(chan *big.Int) | |
first, second := big.NewInt(1), big.NewInt(1) | |
go func() { | |
for ;; { | |
ch <- first | |
next := new(big.Int) | |
next.Add(first, second) | |
first, second = second, next | |
} | |
}() | |
return ch | |
} | |
func main() { | |
pos := 0 | |
for fib := range FibonacciStream() { | |
pos++ | |
if len(fib.String()) >= 1000 { | |
break | |
} | |
} | |
fmt.Println(pos) | |
} |
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 main; | |
import "fmt" | |
// Calculates cycle length of digits for unit fraction 1/n | |
func recur_len(n int) int { | |
seen := make(map[int]int) | |
r := 10 // initial remainder | |
for i:=0; ; i++ { | |
if r == 0 { | |
return 0 // divides evenly | |
} else { | |
if l, ok := seen[r]; ok { | |
return i-l | |
} | |
} | |
seen[r] = i | |
r = 10 * (r%n) | |
} | |
return 0 | |
} | |
func main() { | |
max_elem := 0 | |
max_len := 0 | |
for d:=1; d<1000; d++ { | |
cycle_len := recur_len(d) | |
if cycle_len > max_len { | |
max_len = cycle_len | |
max_elem = d | |
} | |
} | |
fmt.Println(max_elem) | |
} |
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 main; | |
import "fmt" | |
import "primesvec" | |
func abs(n int) (result uint32) { | |
if n<0 { | |
result = uint32(-n) | |
} else { | |
result = uint32(n) | |
} | |
return | |
} | |
func main() { | |
primes := primesvec.Create(100000) | |
primes.Sieve() | |
max_count, max_a, max_b := 0, 0, 0 | |
count_primes := func(a, b int) (count int) { | |
for n:=0; ; n++ { | |
v := n*(n+a) + b | |
if !primes.IsPrime(v) { | |
break | |
} | |
count++ | |
} | |
return | |
} | |
for a:=-999; a<=999; a++ { | |
for b:=uint32(0); b<=999; b=primes.Next(b) { | |
for d:=-1; d<=1; d+=2 { | |
count := count_primes(a, int(b)*d) | |
if count > max_count { | |
max_count, max_a, max_b = count, a, int(b)*d | |
} | |
} | |
} | |
} | |
fmt.Println(max_a*max_b) | |
} |
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 main; | |
import "fmt" | |
/* | |
* What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral | |
* | |
* For an n by n grid, and n being odd, the number in the top right | |
* corner is n^2. The other corners are given by: n^2-n+1, n^2-2n+2, | |
* and n^2-3n+3. Adding these together gives the quadratic, 4n^2-6n+6 | |
*/ | |
func main() { | |
sum := 1 | |
for n:=3; n<=1001; n+=2 { | |
sum += n*(4*n-6)+6 | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import "fmt" | |
import "big" | |
/* | |
* How many distinct terms are in the sequence generated by a^b | |
* for 2<=a<=100 and 2<=b<=100? | |
* | |
* For an n by n grid, and n being odd, the number in the top right | |
* corner is n^2. The other corners are given by: n^2-n+1, n^2-2n+2, | |
* and n^2-3n+3. Adding these together gives the quadratic, 4n^2-6n+6 | |
*/ | |
func Pow(a, b int) *big.Int { | |
result := big.NewInt(1) | |
a_big := big.NewInt(int64(a)) | |
for n:=1; n<=b; n++ { | |
result.Mul(result, a_big) | |
} | |
return result | |
} | |
func main() { | |
powers := make([]*big.Int, 0, 10000) | |
exists := func(n *big.Int) bool { | |
for _, e := range powers { | |
if e.Cmp(n) == 0 { | |
return true | |
} | |
} | |
return false | |
} | |
for a:=2; a<=100; a++ { | |
for b:=2; b<=100; b++ { | |
pow := Pow(a, b) | |
if !exists(pow) { | |
powers = append(powers, pow) | |
} | |
} | |
} | |
fmt.Println(len(powers)) | |
} |
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 main; | |
import "fmt" | |
/* | |
* Find the sum of all the numbers that can be written as the | |
* sum of fifth powers of their digits | |
* | |
* Loop over up to 6 digits numbers, since 7 * 9**5 have only 6 digits | |
*/ | |
func Pow(a, b int) int { | |
result := 1 | |
for i:=1; i<=b; i++ { | |
result *= a | |
} | |
return result | |
} | |
func main() { | |
sum := 0 | |
for a1:=0; a1<=9; a1++ { | |
for a2:=0; a2<=9; a2++ { | |
for a3:=0; a3<=9; a3++ { | |
for a4:=0; a4<=9; a4++ { | |
for a5:=0; a5<=9; a5++ { | |
for a6:=0; a6<=9; a6++ { | |
num := a1+10*(a2+10*(a3+10*(a4+10*(a5+10*a6)))) | |
pow_sum := Pow(a1,5)+Pow(a2,5)+Pow(a3,5)+Pow(a4,5)+Pow(a5,5)+Pow(a6,5) | |
if num == pow_sum { | |
sum += num | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
sum -= 1 // do not count 1 == 1^5 | |
fmt.Println(sum) | |
} |
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 main; | |
import "fmt" | |
func find_poss(amount int, coins []int) int { | |
sum := 0 | |
for i, coin := range coins { | |
if amount-coin == 0 { | |
sum += 1 | |
} else if amount-coin > 0 { | |
sum += find_poss(amount-coin, coins[i:len(coins)]) | |
} | |
} | |
return sum | |
} | |
/* | |
* How many different ways can £2 be made using any number of coins? | |
*/ | |
func main() { | |
fmt.Println(find_poss(200, []int{200, 100, 50, 20, 10, 5, 2, 1})) | |
} |
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 main; | |
import "fmt" | |
var PANDIGITSUM, PANDIGITMUL int | |
func init() { | |
PANDIGITMUL = 1 | |
for _, v := range "123456789" { | |
PANDIGITSUM += v | |
PANDIGITMUL *= v | |
} | |
} | |
func IsPandigit(a, b, c int) bool { | |
sum, mul := 0, 1 | |
digits := fmt.Sprintf("%d%d%d", a,b,c) | |
if len(digits) != 9 { | |
return false | |
} | |
for _, v := range digits { | |
sum += v | |
mul *= v | |
} | |
return sum == PANDIGITSUM && mul == PANDIGITMUL | |
} | |
/* | |
* Find the sum of all products whose multiplicand/multiplier/product | |
* identity can be written as a 1 through 9 pandigital. | |
* | |
* The product can be either of the below two forms to be pandigital: - | |
* a (1 digit number) * b (4 digit number) = c (4 digit number) | |
* a (2 digit number) * b (3 digit number) = c (4 digit number) | |
*/ | |
func main() { | |
pandigits := make(map[int]bool) | |
for a:=1; a<100; a++ { | |
for b:=100; b<10000; b++ { | |
c := a*b | |
if c>10000 { | |
break | |
} | |
if IsPandigit(a,b,c) { | |
pandigits[c] = true | |
} | |
} | |
} | |
sum := 0 | |
for k, _ := range pandigits { | |
sum += k | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import "fmt" | |
func gcd(a, b int) int { | |
for ; b>0; { | |
a,b = b, a%b | |
} | |
return a | |
} | |
/* | |
* There are exactly four non-trivial examples of this type of fraction, | |
* less than one in value, and containing two digits in the numerator and | |
* denominator. | |
* | |
* If the product of these four fractions is given in its lowest common | |
* terms, find the value of the denominator. | |
* | |
* Find the sum of all products whose multiplicand/multiplier/product | |
* | |
* xy/yz = x/z | |
* (10x + y)/(10y+z) = x/z | |
* 9xz + yz = 10xy | |
*/ | |
func main() { | |
nummul, denumul := 1, 1 | |
for x:=1; x<=9; x++ { | |
for y:=1; y<=9; y++ { | |
if x == y { | |
continue | |
} | |
for z:=1; z<=9; z++ { | |
if 9*x*z+y*z == 10*x*y { | |
nummul *= x | |
denumul *= z | |
} | |
} | |
} | |
} | |
fmt.Println(denumul/gcd(nummul, denumul)) | |
} |
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 main; | |
import "fmt" | |
import "strconv" | |
/* | |
* Find the sum of all numbers which are equal to the sum of the factorial of their digits. | |
* | |
* Upper bound is 9!*7 = 2540160 | |
*/ | |
func main() { | |
facts := []int {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880} | |
limit := 362880*9 | |
sum := 0 | |
for i:=3; i<=limit; i++ { | |
digits_sum := 0 | |
for _, v := range strconv.Itoa(i) { | |
digits_sum += facts[v-48] // decode ascii number | |
} | |
if digits_sum == i { | |
sum += i | |
} | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
"strconv" | |
) | |
func rot_str(s string) string { | |
return s[1:len(s)] + string(s[0]) | |
} | |
/* | |
* How many circular primes are there below one million? | |
*/ | |
func main() { | |
primes := primesvec.Create(2*3*4*5*6*7*8*9*7) | |
primes.SieveE() | |
is_circular_prime := func(prime uint32) bool { | |
prime_s := strconv.Itoa(int(prime)) | |
for next_prime_s:=rot_str(prime_s); next_prime_s!=prime_s; next_prime_s=rot_str(next_prime_s) { | |
next_prime, _ := strconv.Atoi(next_prime_s) | |
if !primes.IsPrime(next_prime) { | |
return false | |
} | |
} | |
return true | |
} | |
count := 0 | |
for prime := uint32(2); prime!=0; prime = primes.Next(prime) { | |
if is_circular_prime(prime) { | |
count ++ | |
} | |
} | |
fmt.Println(count) | |
} |
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 main; | |
import "fmt" | |
import "strconv" | |
func IsPalindrom(s string) bool { | |
for i:=0; i<len(s)/2; i++ { | |
if s[i] != s[len(s)-i-1] { | |
return false | |
} | |
} | |
return true | |
} | |
/* | |
* Find the sum of all numbers, less than one million, which are | |
* palindromic in base 10 and base 2 | |
* | |
*/ | |
func main() { | |
sum := 0 | |
for i:=1; i<1000000; i++ { | |
if IsPalindrom(strconv.Itoa(i)) && IsPalindrom(strconv.Itob(i, 2)) { | |
sum += i | |
} | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
) | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} | |
func IsLeftTrancatable(n int) bool { | |
ns := strconv.Itoa(n) | |
for i:=0; i<len(ns); i++ { | |
in, _ := strconv.Atoi(ns[i:len(ns)]) | |
if !IsPrime(in) { | |
return false | |
} | |
} | |
return true | |
} | |
/* | |
* Returns all truncable primes starting with n | |
*/ | |
func TrancableList(n int) []int { | |
if !IsPrime(n) { | |
return []int{} | |
} | |
result := make([]int, 0, 10) | |
result = append(result, n) | |
for _, digit := range []int {1,3,7,9} { | |
trancables := TrancableList(10*n+digit) | |
for _, trancable := range trancables { | |
if IsLeftTrancatable(trancable) { | |
result = append(result, trancable) | |
} | |
} | |
} | |
return result | |
} | |
/* | |
* Find the sum of the only eleven primes that are both | |
* truncatable from left to right and right to left. | |
* | |
*/ | |
func main() { | |
sum := 0 | |
for _, digit := range []int{2,3,5,7} { | |
for _, trunc := range TrancableList(digit) { | |
if trunc > 10 { | |
sum += trunc | |
} | |
} | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
) | |
var PANDIGITSUM, PANDIGITMUL int | |
func init() { | |
PANDIGITMUL = 1 | |
for _, v := range "123456789" { | |
PANDIGITSUM += v | |
PANDIGITMUL *= v | |
} | |
} | |
func IsPandigit(digits string) bool { | |
sum, mul := 0, 1 | |
if len(digits) != 9 { | |
return false | |
} | |
for _, v := range digits { | |
sum += v | |
mul *= v | |
} | |
return sum == PANDIGITSUM && mul == PANDIGITMUL | |
} | |
/* | |
* What is the largest 1 to 9 pandigital 9-digit number | |
* that can be formed as the concatenated product of | |
* an integer with (1,2, ... , n) where n 1? | |
*/ | |
func main() { | |
root: | |
for k:=9999; ; k-- { | |
digits := "" | |
for n:=1; n<=9; n++ { | |
digits += strconv.Itoa(n*k) | |
switch ld := len(digits); { | |
case ld > 9: | |
break | |
case ld == 9 && IsPandigit(digits): | |
fmt.Println(digits) | |
break root | |
} | |
} | |
} | |
} |
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 main; | |
import "fmt" | |
type Triple struct { a,b,c int } | |
func gcd(a, b int) int { | |
for ; b>0; { | |
a,b = b, a%b | |
} | |
return a | |
} | |
/* | |
* Generate all primitive pythagorean triples | |
* with perimeter less than max_p | |
*/ | |
func Triples(max_p int) chan Triple { | |
ch := make(chan Triple) | |
go func() { | |
for m:=2; m<max_p/2; m++ { | |
for n:=m%2+1; n<m; n+=2 { | |
if gcd(m,n) == 1 { | |
a := m*m - n*n | |
b := 2*m*n | |
c := m*m + n*n | |
if a+b+c<=max_p { | |
if b>a { | |
ch <- Triple{a,b,c} | |
} else { | |
ch <- Triple{b,a,c} | |
} | |
} | |
} | |
} | |
} | |
close(ch) | |
}() | |
return ch | |
} | |
func main() { | |
perimeters := make([]int, 1001) | |
for triple := range Triples(120) { | |
p := triple.a +triple.b + triple.c | |
for n:=p; n<=1000; n+=p { | |
perimeters[n]++ | |
} | |
} | |
max_p := 0 | |
max_c :=0 | |
for p, c := range perimeters { | |
if c>max_c { | |
max_p, max_c = p, c | |
} | |
} | |
fmt.Println(max_p) | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
) | |
func Pow(a, b int) int { | |
result := 1 | |
for i:=1; i<=b; i++ { | |
result *= a | |
} | |
return result | |
} | |
/* | |
* Returns n-digits from irrational decimal fraction | |
* is created by concatenating the positive integers | |
*/ | |
func n_digit(n int) int { | |
l := 1 | |
// we have 9*10^l l-digits numbers | |
for ; n>9*Pow(10, l-1)*l; l++ { | |
n -= 9*Pow(10, l-1)*l | |
} | |
digit := 0 | |
num := n/l | |
add := n%l | |
if add== 0 { | |
// last symbol | |
nums_s := strconv.Itoa(Pow(10, l-1)+num-1) | |
digit = int(nums_s[len(nums_s)-1]) | |
} else { | |
// one of symbol of next number | |
nums_s := strconv.Itoa(Pow(10, l-1)+num) | |
digit = int(nums_s[add-1]) | |
} | |
return digit-48 //decode ascii number | |
} | |
func main() { | |
fmt.Println( | |
n_digit(1) * n_digit(10) * | |
n_digit(100) * n_digit(1000) * | |
n_digit(10000) * n_digit(100000) * | |
n_digit(1000000)) | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
"strconv" | |
"sort" | |
) | |
type Digits []uint8; | |
func (d Digits) Len() int { | |
return len(d) | |
} | |
func (d Digits) Less(i, j int) bool { | |
return d[i]<d[j] | |
} | |
func (d Digits) Swap(i, j int) { | |
d[i], d[j] = d[j], d[i] | |
} | |
func IsPandigital(n int) bool { | |
ns := Digits([]uint8(strconv.Itoa(n))) | |
sort.Sort(ns) | |
for pos, digit := range ns { | |
if digit != uint8(pos+49) { // digit askii code | |
return false | |
} | |
} | |
return true | |
} | |
/* | |
* How many circular primes are there below one million? | |
* | |
* Nine numbers cannot be done (1+2+3+4+5+6+7+8+9=45 => always dividable by 3) | |
* Eight numbers cannot be done (1+2+3+4+5+6+7+8=36 => always dividable by 3) | |
*/ | |
func main() { | |
max_value := uint32(7654321) | |
primes := primesvec.Create(max_value) | |
primes.SieveE() | |
for p:=primes.Prev(max_value-1); p!=0; p=primes.Prev(p) { | |
if IsPandigital(int(p)) { | |
fmt.Println(p) | |
break | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"strings" | |
"io/ioutil" | |
) | |
/* | |
* Count, how many are triangle words in file | |
*/ | |
func main() { | |
triangles := make(map[int] bool) | |
for n:=1; ; n++ { | |
triangle := n*(n+1)/2 | |
if triangle > 24*30 { // suppose there is no word with more than 30 letter | |
break | |
} | |
triangles[triangle] = true | |
} | |
isTriangle := func(word string) bool { | |
word_num := 0 | |
for _, ch := range word { | |
word_num += ch-64 // convert ascii to alphabet position. | |
} | |
_, ok := triangles[word_num] | |
return ok | |
} | |
content, _ := ioutil.ReadFile("words.txt") | |
words := strings.Split(strings.Replace(string(content), "\"", "", -1), ",", -1) | |
count := 0 | |
for _, word := range words { | |
if isTriangle(word) { | |
count ++ | |
} | |
} | |
fmt.Println(count) | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
) | |
func permutations(digits []uint8) chan []uint8 { | |
ch := make(chan []uint8) | |
go func() { | |
result := make([]uint8, len(digits)) | |
copy(result, digits) | |
ch <- result | |
for ;; { | |
a, b := -1, -1 | |
// Find the highest index a such that s[a] < s[a+1] | |
for i:=len(digits)-2; i>=0; i-- { | |
if digits[i]<digits[i+1] { | |
a = i | |
break | |
} | |
} | |
// If no such index exists, the permutation is the last permutation. | |
if a == -1 { | |
close(ch) | |
return | |
} | |
// Find the highest index b > a such that s[b] > s[a] | |
for j:=len(digits)-1; j>a; j-- { | |
if digits[j] > digits[a] { | |
b = j | |
break | |
} | |
} | |
// Swap | |
digits[a], digits[b] = digits[b], digits[a] | |
//Reverse all the order of all of the elements after index a | |
for i, j := a+1, len(digits)-1; i<j; i,j = i+1, j-1 { | |
digits[i], digits[j] = digits[j], digits[i] | |
} | |
result = make([]uint8, len(digits)) | |
copy(result, digits) | |
ch <- result | |
} | |
}() | |
return ch | |
} | |
func match(digits []uint8) bool { | |
divisors := []int {17, 13, 11, 7, 5, 3, 2} | |
for p, d := range divisors { | |
v, _ := strconv.Atoi(string(digits[7-p:10-p])) | |
if(v%d != 0) { | |
return false | |
} | |
} | |
return true | |
} | |
func main() { | |
sum := uint64(0) | |
for p := range permutations([]uint8("0123456789")) { | |
if match(p) { | |
v, _ := strconv.Atoi64(string(p)) | |
sum += uint64(v) | |
} | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import "fmt" | |
func pent(n int) int { | |
return n*(3*n-1)/2 | |
} | |
/* | |
* Find the pair of pentagonal numbers, Pj and Pk, for which their | |
* sum and difference is pentagonal and D = |Pk - Pj| is minimised; | |
* what is the value of D? | |
* | |
* Pn1+Pn2 = Pn3 and Pn1-Pn2 == Pn4 | |
* From this follows: Pn3 > Pn1 > Pn2, Pn1 > Pn4, so use Pn4 to build a set | |
* of Pn's. By adding Pn1+Pn2 = Pn3 and Pn1-Pn2 == Pn4 we get 2Pn1 = Pn3 + Pn4 | |
* so Pn1 = (Pn3 + Pn4)/2 Pn2 is then Pn3 - Pn1 | |
*/ | |
func main() { | |
pents := make(map[int] bool) | |
root: | |
for n3:=1; ; n3++ { | |
pn3 := pent(n3) | |
pents[pn3] = true | |
for n4:=1; n4<n3; n4++ { | |
pn4 := pent(n4) | |
pn1 := (pn3+pn4)/2 | |
if (pn3+pn4)%2 ==0 && pents[pn1] { | |
pn2 := pn3-pn1 | |
if pn1>pn2 && pents[pn2] { | |
fmt.Println(pn4) | |
break root | |
} | |
} | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"math" | |
) | |
func hex(n int) int { | |
return n*(2*n-1) | |
} | |
func isPent(x int) bool { | |
n := (0.5 + math.Sqrt(0.25+6*float64(x)))/3 | |
return math.Floor(n) == math.Ceil(n) | |
} | |
/* | |
* Find the next triangle number that is also pentagonal and hexagonal. | |
* | |
* Note: All hexagonal numbers are also triangle number. | |
*/ | |
func main() { | |
for n:=144; ; n++ { | |
num := hex(n) | |
if isPent(num) { | |
fmt.Println(num) | |
break | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
) | |
/* | |
* Find the next triangle number that is also pentagonal and hexagonal. | |
* | |
* Note: All hexagonal numbers are also triangle number. | |
*/ | |
func main() { | |
primes := primesvec.Create(1000000) | |
primes.SieveE() | |
can_be_written := func(n int) bool { | |
for k:=1; ; k++ { | |
p := n-2*k*k | |
switch { | |
case p<0: | |
return false | |
case primes.IsPrime(p): | |
return true | |
} | |
} | |
return false | |
} | |
for n:=3; ; n+=2 { | |
if !primes.IsPrime(n) && !can_be_written(n) { | |
fmt.Println(n) | |
break | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"math" | |
) | |
/* | |
* Find the first four consecutive integers to have four distinct primes factors. | |
*/ | |
func main() { | |
max := 1000000 | |
numFactors := make([]int, max) | |
for i:=2; i<int(math.Sqrt(float64(max))); i++ { | |
if numFactors[i] != 0 { | |
continue | |
} | |
for j:=i*2; j<max; j+=i { | |
numFactors[j]++ | |
} | |
} | |
consecutive := 0 | |
for n:=1; n<max; n++ { | |
if numFactors[n]==4 { | |
consecutive++ | |
} else { | |
consecutive = 0 | |
} | |
if consecutive == 4 { | |
fmt.Println(n-3) | |
break | |
} | |
} | |
} |
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 main; | |
import "fmt" | |
/* | |
* Find the last ten digits of the series, 1^1 + 2^2 + 3^3 + ... + 1000^1000 | |
*/ | |
func main() { | |
sum := uint64(0) | |
for n:=1; n<=1000; n++ { | |
pow := uint64(n) | |
for k:=1; k<n; k++ { | |
pow *= uint64(n) | |
pow %= 10000000000 | |
} | |
sum += pow | |
} | |
fmt.Println(sum % 10000000000) | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
) | |
func isPermutation(a, b uint32) bool { | |
as := fmt.Sprint(a) | |
bs := fmt.Sprint(b) | |
mul_a, sum_a := 1, 0 | |
mul_b, sum_b := 1, 0 | |
if len(as) != len(bs) { | |
return false | |
} | |
for i:=0; i<len(as); i++ { | |
sum_a += int(as[i]) | |
sum_b += int(bs[i]) | |
mul_a *= int(as[i]) | |
mul_b *= int(bs[i]) | |
} | |
return sum_a==sum_b && mul_a==mul_b | |
} | |
/* | |
* Find the next triangle number that is also pentagonal and hexagonal. | |
* | |
* Note: All hexagonal numbers are also triangle number. | |
*/ | |
func main() { | |
primes := primesvec.Create(10000) | |
primes.SieveE() | |
for a:=primes.Next(1487); a!=0; a=primes.Next(a) { | |
b := a+3330 | |
c := b+3330 | |
if primes.IsPrime(int(b)) && primes.IsPrime(int(c)) { | |
if isPermutation(a, b) && isPermutation(b, c) { | |
fmt.Printf("%d%d%d", a, b, c) | |
return | |
} | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
) | |
/* | |
* Which prime, below one-million, can be written as the sum of the most consecutive primes? | |
* | |
*/ | |
func main() { | |
max := uint32(1000000) | |
primes := primesvec.Create(max) | |
primes.SieveE() | |
root: | |
for length:=max;length>0; length-- { | |
sum, head, tail := uint32(0), uint32(2), uint32(0) | |
// start chain from 2 | |
for p, l := primes.Next(1), uint32(0); l<=length; p, l = primes.Next(p), l+1 { | |
if sum+p>max { | |
length=l // shortcut, first time we found maximum possible length | |
break | |
} | |
sum += p | |
tail = p | |
} | |
// moving start and end of chain | |
for ; sum<max ; { | |
sum -= head | |
head = primes.Next(head) | |
tail = primes.Next(tail) | |
sum += tail | |
if sum<max && primes.Test(sum) { | |
fmt.Println(sum) | |
break root | |
} | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
"strings" | |
"primesvec" | |
) | |
/* | |
* Find the smallest prime which, by replacing part of the number | |
* (not necessarily adjacent digits) with the same digit, is part | |
* of an eight prime value family. | |
* | |
*/ | |
func main() { | |
max := uint32(1000000) | |
primes := primesvec.Create(max) | |
primes.SieveE() | |
is8Family := func(n uint32) bool { | |
ns := fmt.Sprint(n) | |
for _, digit := range "012" { | |
digit_count := strings.Count(ns, string(digit)) | |
if digit_count==0 { | |
continue | |
} | |
count, miss := 0, 0 | |
for _, new_digit := range "0123456789" { | |
v, _ := strconv.Atoi(strings.Replace(ns, string(digit), string(new_digit), -1)) | |
if primes.IsPrime(v) && n<=uint32(v) { // leading zeros not allowed | |
count++ | |
} else { | |
miss++ | |
} | |
if miss > 2 { | |
return false | |
} | |
} | |
if count==8 { | |
return true | |
} | |
} | |
return false | |
} | |
for p:=primes.Next(1); p!=0; p=primes.Next(p) { | |
if(is8Family(p)) { | |
fmt.Println(p) | |
break | |
} | |
} | |
} |
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 main; | |
import "fmt" | |
func isPermutation(a, b int) bool { | |
as := fmt.Sprint(a) | |
bs := fmt.Sprint(b) | |
mul_a, sum_a := 1, 0 | |
mul_b, sum_b := 1, 0 | |
if len(as) != len(bs) { | |
return false | |
} | |
for i:=0; i<len(as); i++ { | |
sum_a += int(as[i]) | |
sum_b += int(bs[i]) | |
mul_a *= int(as[i]) | |
mul_b *= int(bs[i]) | |
} | |
return sum_a==sum_b && mul_a==mul_b | |
} | |
/* | |
* Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits. | |
* | |
*/ | |
func main() { | |
root: | |
for n:=1; ; n++ { | |
for p:=2; p<=6; p++ { | |
if !isPermutation(n, n*p) { | |
continue root | |
} | |
} | |
fmt.Println(n) | |
break | |
} | |
} |
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 main | |
import "fmt" | |
import "binomial" | |
/* | |
* How many, not necessarily distinct, values of C(n, r), for 1<=n<=100, | |
* are greater than one-million | |
*/ | |
func main() { | |
count := 0 | |
for n:=uint64(1); n<=100; n++ { | |
for r:=uint64(1); r<=n; r++ { | |
if binomial.C(n, r)>1000000 { | |
count++ | |
} | |
} | |
} | |
fmt.Println(count) | |
} |
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 main; | |
import ( | |
"fmt" | |
"os" | |
"bufio" | |
"sort" | |
) | |
const ( | |
HIGH_CARD = iota | |
ONE_PAIR | |
TWO_PAIRS | |
THREE_OF_KIND | |
STRAIGHT | |
FLUSH | |
FULL_HOUSE | |
FOUR_OF_KIND | |
STRAIGHT_FLUSH | |
ROYAL_FLUSH | |
) | |
var rank_order = map[string] int{ | |
"1":1, "2":2, "3":3, "4":4, | |
"5":5, "6":6, "7":7, "8":8, | |
"9":9, "T":10, "J":11, "Q":12, | |
"K":13, "A":14 } | |
type Card struct { | |
rank int | |
suit string | |
} | |
type Hand [5]Card | |
func (hand *Hand) Less(i, j int) bool { | |
return hand[i].rank < hand[j].rank | |
} | |
func (hand *Hand) Len() int { | |
return len(hand) | |
} | |
func (hand *Hand) Swap(i, j int) { | |
hand[i], hand[j] = hand[j], hand[i] | |
} | |
func NewHand(v string) *Hand { | |
result := new(Hand) | |
for n:=0; n<5; n++ { | |
result[n].rank = rank_order[string(v[3*n])] | |
result[n].suit = string(v[3*n+1]) | |
} | |
sort.Sort(result) | |
return result | |
} | |
func (hand *Hand) IsStraight() bool { | |
for n:=0;n<4;n++ { | |
if hand[n].rank+1!=hand[n+1].rank { | |
return false | |
} | |
} | |
return true | |
} | |
func (hand *Hand) IsFlush() bool { | |
for n:=0;n<4;n++ { | |
if hand[n].suit!=hand[n+1].suit { | |
return false | |
} | |
} | |
return true | |
} | |
func (hand *Hand) Kind(cnt, butnot int) int { | |
counts := make(map[int] int) | |
for n:=0; n<5; n++ { | |
if hand[n].rank != butnot { | |
counts[hand[n].rank]++ | |
if counts[hand[n].rank] == cnt { | |
return hand[n].rank | |
} | |
} | |
} | |
return 0 | |
} | |
func (hand *Hand) Rank() (int, int, int) { | |
straight := hand.IsStraight() | |
flush := hand.IsFlush() | |
if straight && flush { | |
return STRAIGHT_FLUSH, 0, 0 | |
} | |
four := hand.Kind(4, 0) | |
if four != 0 { | |
return FOUR_OF_KIND, four, 0 | |
} | |
three := hand.Kind(3, 0) | |
pair := hand.Kind(2, three) | |
if three!=0 && pair!=0 { | |
return FULL_HOUSE, three, pair | |
} | |
if flush { | |
return FLUSH, 0, 0 | |
} | |
if straight { | |
return STRAIGHT, 0, 0 | |
} | |
if three!=0 { | |
return THREE_OF_KIND, three, 0 | |
} | |
if pair!=0 { | |
second_pair := hand.Kind(2, pair) // hand sorted, so second_pair>pair | |
if second_pair!=0 { | |
return TWO_PAIRS, second_pair, pair | |
} | |
return ONE_PAIR, pair, 0 | |
} | |
return HIGH_CARD, hand[4].rank, hand[3].rank | |
} | |
func (left *Hand) Bigger(right *Hand) bool { | |
a1, b1, c1 := left.Rank() | |
a2, b2, c2 := right.Rank() | |
if a1>a2 { | |
return true | |
} | |
if a1==a2 && b1>b2 { | |
return true | |
} | |
if a1==a2 && b1==b2 && c1==c2 { | |
for n:=4; n>=0; n-- { | |
if left[n].rank < right[n].rank { | |
return false | |
} | |
} | |
return true | |
} | |
return false | |
} | |
func main() { | |
f, _ := os.Open("poker.txt") | |
defer f.Close() | |
reader := bufio.NewReader(f) | |
first_wins := 0 | |
for { | |
line, e := reader.ReadString('\n') | |
if e == os.EOF { | |
break | |
} | |
line = line[0:len(line)-2] // remove \r | |
left := NewHand(line[0:14]) | |
right := NewHand(line[15:29]) | |
if left.Bigger(right) { | |
first_wins++ | |
} | |
} | |
fmt.Println(first_wins) | |
} |
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 main; | |
import ( | |
"fmt" | |
"big" | |
) | |
func IsPalindrome(s string) bool { | |
for i, j := 0, len(s)-1; i<j; i, j = i+1, j-1 { | |
if s[i] != s[j] { | |
return false | |
} | |
} | |
return true | |
} | |
func isLychrel(n int) bool { | |
v := big.NewInt(int64(n)) | |
for i:=0;i<=50;i++ { | |
vs := []uint8(v.String()) | |
for i, j := 0, len(vs)-1; i<j; i, j = i+1, j-1 { | |
vs[i], vs[j] = vs[j], vs[i] | |
} | |
rv := new(big.Int) | |
rv.SetString(string(vs), 10) | |
v = v.Add(v, rv) | |
if IsPalindrome(v.String()) { | |
return false | |
} | |
} | |
return true | |
} | |
/* | |
* How many Lychrel numbers are there below ten-thousand? | |
*/ | |
func main() { | |
count := 0 | |
for n:=1; n<=10000;n++ { | |
if isLychrel(n) { | |
count++ | |
} | |
} | |
fmt.Println(count) | |
} |
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 main; | |
import ( | |
"fmt" | |
"big" | |
) | |
/* | |
* Considering natural numbers of the form, a^b, where a, b <= 100, | |
* what is the maximum digital sum? | |
*/ | |
func main() { | |
max_sum := 0 | |
for a:=2; a<=100; a++ { | |
result := big.NewInt(int64(a)) | |
for b:=2; b<=100; b++ { | |
result = result.Mul(result, big.NewInt(int64(a))) | |
sum := 0 | |
for _, v := range result.String() { | |
sum += v - '0' | |
} | |
if sum>max_sum { | |
max_sum = sum | |
} | |
} | |
} | |
fmt.Println(max_sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"big" | |
) | |
/* | |
* In the first one-thousand expansions of sqrt(2), how many fractions | |
* contain a numerator with more digits than denominator? | |
*/ | |
func main() { | |
count := 0 | |
n, d := big.NewInt(3), big.NewInt(2) | |
for i:=0;i<1000;i++ { | |
if len(n.String()) > len(d.String()) { | |
count++ | |
} | |
// let's do the fraction operation "manually" | |
n.Add(n, d) | |
n, d = d, n | |
n.Add(n, d) | |
} | |
fmt.Println(count) | |
} |
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 main; | |
import ( | |
"fmt" | |
"primesvec" | |
) | |
/* | |
* What is the side length of the square spiral for which the ratio | |
* of primes along both diagonals first falls below 10%? | |
* | |
* For an n by n grid, and n being odd, the number in the top right | |
* corner is n^2. The other corners are given by: n^2-n+1, n^2-2n+2, | |
* and n^2-3n+3. | |
*/ | |
func main() { | |
count := 0 | |
for n, m :=3, 5; ; n, m=n+2, m+4 { | |
if primesvec.IsPrime(n*n-n+1) { | |
count++ | |
} | |
if primesvec.IsPrime(n*n-2*n+2) { | |
count++ | |
} | |
if primesvec.IsPrime(n*n-3*n+3) { | |
count++ | |
} | |
ratio := 100*count/m | |
if ratio<10 { | |
fmt.Println(n) | |
break | |
} | |
} | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
"strings" | |
"io/ioutil" | |
) | |
func AllAlpha(text []uint8) bool { | |
for _, letter := range text { | |
if letter<32 || letter>122 { | |
return false | |
} | |
} | |
return true | |
} | |
func CountSpaces(text []uint8) int { | |
count := 0 | |
for _, letter := range text { | |
if letter == 32 { // ascii space | |
count++ | |
} | |
} | |
return count | |
} | |
func Keys() chan []uint8 { | |
ch := make(chan []uint8) | |
go func() { | |
for a:=uint8(97); a<=122; a++ { | |
for b:=uint8(97); b<=122; b++ { | |
for c:=uint8(97); c<=122; c++ { | |
ch <- []uint8{a,b,c} | |
} | |
} | |
} | |
close(ch) | |
}() | |
return ch | |
} | |
func Crypt(text []uint8, key []uint8) []uint8 { | |
result := make([]uint8, len(text)) | |
for i, ch := range text { | |
result[i] = ch^key[i%len(key)] | |
} | |
return result | |
} | |
/* | |
* Decrypt the message and find the sum of | |
* the ASCII values in the original text. | |
*/ | |
func main() { | |
content, _ := ioutil.ReadFile("cipher1.txt") | |
symbols := strings.Split(strings.Replace(string(content), "\r\n", "", -1), ",", -1) | |
text := make([]uint8, len(symbols)) | |
for i, symbol := range symbols { | |
ch, _ := strconv.Atoi(symbol) | |
text[i] = uint8(ch) | |
} | |
max_spaces := 0 | |
var message []uint8 | |
for key := range Keys() { | |
decoded := Crypt(text, key) | |
if AllAlpha(decoded) { | |
spaces := CountSpaces(decoded) | |
if spaces > max_spaces { | |
max_spaces, message = spaces, decoded | |
} | |
} | |
} | |
sum := 0 | |
for _, ch := range message { | |
sum += int(ch) | |
} | |
fmt.Println(sum) | |
} |
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 main; | |
import ( | |
"fmt" | |
"strconv" | |
"primesvec" | |
) | |
/* | |
* What is the side length of the square spiral for which the ratio | |
* of primes along both diagonals first falls below 10%? | |
* | |
* For an n by n grid, and n being odd, the number in the top right | |
* corner is n^2. The other corners are given by: n^2-n+1, n^2-2n+2, | |
* and n^2-3n+3. | |
*/ | |
func main() { | |
max_prime := uint(1000000) | |
primes := primesvec.Create(uint32(max_prime)) | |
primes.SieveE() | |
isConcatPrime := func(a, b string) bool { | |
ab, _ := strconv.Atoui(a+b) | |
if ab > max_prime { | |
if !primesvec.IsPrime(int(ab)) { | |
return false | |
} | |
} else if !primes.Test(uint32(ab)) { | |
return false | |
} | |
ba, _ := strconv.Atoui(b+a) | |
if ba > max_prime { | |
if !primesvec.IsPrime(int(ba)) { | |
return false | |
} | |
} else if !primes.Test(uint32(ba)) { | |
return false | |
} | |
return true | |
} | |
min_sum := max_prime*5 | |
for a:=primes.Next(2); a<100; a=primes.Next(a) { | |
as := strconv.Uitoa64(uint64(a)) | |
for b:=primes.Next(a); b<10000; b=primes.Next(b) { | |
bs := strconv.Uitoa64(uint64(b)) | |
if !isConcatPrime(as, bs) { | |
continue | |
} | |
for c:=primes.Next(b); c<10000; c=primes.Next(c) { | |
cs := strconv.Uitoa64(uint64(c)) | |
if !isConcatPrime(as, cs) || !isConcatPrime(bs, cs) { | |
continue | |
} | |
for d:=primes.Next(c); d<10000; d=primes.Next(d) { | |
ds := strconv.Uitoa64(uint64(d)) | |
if !isConcatPrime(as, ds) || !isConcatPrime(bs, ds) || !isConcatPrime(cs, ds) { | |
continue | |
} | |
for e:=primes.Next(d); e<10000; e=primes.Next(e) { | |
es := strconv.Uitoa64(uint64(e)) | |
if !isConcatPrime(as, es) || !isConcatPrime(bs, es) || !isConcatPrime(cs, es) || !isConcatPrime(ds, es) { | |
continue | |
} | |
if a+b+c+d+e < uint32(min_sum) { | |
min_sum = uint(a+b+c+d+e) | |
} | |
} | |
} | |
} | |
} | |
} | |
fmt.Println(min_sum) | |
} |
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
"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE","MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE","APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL","BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA","BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN","ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE","BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA","KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN","ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI","GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL","MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY","KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA","BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY","LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE","HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA","MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE","FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA","VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA","PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT","KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE","TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL","ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE","GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA","ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE","OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA","MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA","SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA","ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS","STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE","TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE","MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH","AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA","JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN","DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA","JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN","PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA","GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA","ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA","MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE","JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE","LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE","IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE","BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE","FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN","EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA","JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE","HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE","PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY","CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA","ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA","MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI","SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE","EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI","GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA","ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI","LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN","LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO","COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA","LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE","DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA","ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA","REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA","KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA","TORI","OCTAVIA","JADE","DENICE","GERMAINE","SIERRA","MICHELL","CORTNEY","NELLY","DORETHA","SYDNEY","DEIDRA","MONIKA","LASHONDA","JUDI","CHELSEY","ANTIONETTE","MARGOT","BOBBY","ADELAIDE","NAN","LEEANN","ELISHA","DESSIE","LIBBY","KATHI","GAYLA","LATANYA","MINA","MELLISA","KIMBERLEE","JASMIN","RENAE","ZELDA","ELDA","MA","JUSTINA","GUSSIE","EMILIE","CAMILLA","ABBIE","ROCIO","KAITLYN","JESSE","EDYTHE","ASHLEIGH","SELINA","LAKESHA","GERI","ALLENE","PAMALA","MICHAELA","DAYNA","CARYN","ROSALIA","SUN","JACQULINE","REBECA","MARYBETH","KRYSTLE","IOLA","DOTTIE","BENNIE","BELLE","AUBREY","GRISELDA","ERNESTINA","ELIDA","ADRIANNE","DEMETRIA","DELMA","CHONG","JAQUELINE","DESTINY","ARLEEN","VIRGINA","RETHA","FATIMA","TILLIE","ELEANORE","CARI","TREVA","BIRDIE","WILHELMINA","ROSALEE","MAURINE","LATRICE","YONG","JENA","TARYN","ELIA","DEBBY","MAUDIE","JEANNA","DELILAH","CATRINA","SHONDA","HORTENCIA","THEODORA","TERESITA","ROBBIN","DANETTE","MARYJANE","FREDDIE","DELPHINE","BRIANNE","NILDA","DANNA","CINDI","BESS","IONA","HANNA","ARIEL","WINONA","VIDA","ROSITA","MARIANNA","WILLIAM","RACHEAL","GUILLERMINA","ELOISA","CELESTINE","CAREN","MALISSA","LONA","CHANTEL","SHELLIE","MARISELA","LEORA","AGATHA","SOLEDAD","MIGDALIA","IVETTE","CHRISTEN","ATHENA","JANEL","CHLOE","VEDA","PATTIE","TESSIE","TERA","MARILYNN","LUCRETIA","KARRIE","DINAH","DANIELA","ALECIA","ADELINA","VERNICE","SHIELA","PORTIA","MERRY","LASHAWN","DEVON","DARA","TAWANA","OMA","VERDA","CHRISTIN","ALENE","ZELLA","SANDI","RAFAELA","MAYA","KIRA","CANDIDA","ALVINA","SUZAN","SHAYLA","LYN","LETTIE","ALVA","SAMATHA","ORALIA","MATILDE","MADONNA","LARISSA","VESTA","RENITA","INDIA","DELOIS","SHANDA","PHILLIS","LORRI","ERLINDA","CRUZ","CATHRINE","BARB","ZOE","ISABELL","IONE","GISELA","CHARLIE","VALENCIA","ROXANNA","MAYME","KISHA","ELLIE","MELLISSA","DORRIS","DALIA","BELLA","ANNETTA","ZOILA","RETA","REINA","LAURETTA","KYLIE","CHRISTAL","PILAR","CHARLA","ELISSA","TIFFANI","TANA","PAULINA","LEOTA","BREANNA","JAYME","CARMEL","VERNELL","TOMASA","MANDI","DOMINGA","SANTA","MELODIE","LURA","ALEXA","TAMELA","RYAN","MIRNA","KERRIE","VENUS","NOEL","FELICITA","CRISTY","CARMELITA","BERNIECE","ANNEMARIE","TIARA","ROSEANNE","MISSY","CORI","ROXANA","PRICILLA","KRISTAL","JUNG","ELYSE","HAYDEE","ALETHA","BETTINA","MARGE","GILLIAN","FILOMENA","CHARLES","ZENAIDA","HARRIETTE","CARIDAD","VADA","UNA","ARETHA","PEARLINE","MARJORY","MARCELA","FLOR","EVETTE","ELOUISE","ALINA","TRINIDAD","DAVID","DAMARIS","CATHARINE","CARROLL","BELVA","NAKIA","MARLENA","LUANNE","LORINE","KARON","DORENE","DANITA","BRENNA","TATIANA","SAMMIE","LOUANN","LOREN","JULIANNA","ANDRIA","PHILOMENA","LUCILA","LEONORA","DOVIE","ROMONA","MIMI","JACQUELIN","GAYE","TONJA","MISTI","JOE","GENE","CHASTITY","STACIA","ROXANN","MICAELA","NIKITA","MEI","VELDA","MARLYS","JOHNNA","AURA","LAVERN","IVONNE","HAYLEY","NICKI","MAJORIE","HERLINDA","GEORGE","ALPHA","YADIRA","PERLA","GREGORIA","DANIEL","ANTONETTE","SHELLI","MOZELLE","MARIAH","JOELLE","CORDELIA","JOSETTE","CHIQUITA","TRISTA","LOUIS","LAQUITA","GEORGIANA","CANDI","SHANON","LONNIE","HILDEGARD","CECIL","VALENTINA","STEPHANY","MAGDA","KAROL","GERRY","GABRIELLA","TIANA","ROMA","RICHELLE","RAY","PRINCESS","OLETA","JACQUE","IDELLA","ALAINA","SUZANNA","JOVITA","BLAIR","TOSHA","RAVEN","NEREIDA","MARLYN","KYLA","JOSEPH","DELFINA","TENA","STEPHENIE","SABINA","NATHALIE","MARCELLE","GERTIE","DARLEEN","THEA","SHARONDA","SHANTEL","BELEN","VENESSA","ROSALINA","ONA","GENOVEVA","COREY","CLEMENTINE","ROSALBA","RENATE","RENATA","MI","IVORY","GEORGIANNA","FLOY","DORCAS","ARIANA","TYRA","THEDA","MARIAM","JULI","JESICA","DONNIE","VIKKI","VERLA","ROSELYN","MELVINA","JANNETTE","GINNY","DEBRAH","CORRIE","ASIA","VIOLETA","MYRTIS","LATRICIA","COLLETTE","CHARLEEN","ANISSA","VIVIANA","TWYLA","PRECIOUS","NEDRA","LATONIA","LAN","HELLEN","FABIOLA","ANNAMARIE","ADELL","SHARYN","CHANTAL","NIKI","MAUD","LIZETTE","LINDY","KIA","KESHA","JEANA","DANELLE","CHARLINE","CHANEL","CARROL","VALORIE","LIA","DORTHA","CRISTAL","SUNNY","LEONE","LEILANI","GERRI","DEBI","ANDRA","KESHIA","IMA","EULALIA","EASTER","DULCE","NATIVIDAD","LINNIE","KAMI","GEORGIE","CATINA","BROOK","ALDA","WINNIFRED","SHARLA","RUTHANN","MEAGHAN","MAGDALENE","LISSETTE","ADELAIDA","VENITA","TRENA","SHIRLENE","SHAMEKA","ELIZEBETH","DIAN","SHANTA","MICKEY","LATOSHA","CARLOTTA","WINDY","SOON","ROSINA","MARIANN","LEISA","JONNIE","DAWNA","CATHIE","BILLY","ASTRID","SIDNEY","LAUREEN","JANEEN","HOLLI","FAWN","VICKEY","TERESSA","SHANTE","RUBYE","MARCELINA","CHANDA","CARY","TERESE","SCARLETT","MARTY","MARNIE","LULU","LISETTE","JENIFFER","ELENOR","DORINDA","DONITA","CARMAN","BERNITA","ALTAGRACIA","ALETA","ADRIANNA","ZORAIDA","RONNIE","NICOLA","LYNDSEY","KENDALL","JANINA","CHRISSY","AMI","STARLA","PHYLIS","PHUONG","KYRA","CHARISSE","BLANCH","SANJUANITA","RONA","NANCI","MARILEE","MARANDA","CORY","BRIGETTE","SANJUANA","MARITA","KASSANDRA","JOYCELYN","IRA","FELIPA","CHELSIE","BONNY","MIREYA","LORENZA","KYONG","ILEANA","CANDELARIA","TONY","TOBY","SHERIE","OK","MARK","LUCIE","LEATRICE","LAKESHIA","GERDA","EDIE","BAMBI","MARYLIN","LAVON","HORTENSE","GARNET","EVIE","TRESSA","SHAYNA","LAVINA","KYUNG","JEANETTA","SHERRILL","SHARA","PHYLISS","MITTIE","ANABEL","ALESIA","THUY","TAWANDA","RICHARD","JOANIE","TIFFANIE","LASHANDA","KARISSA","ENRIQUETA","DARIA","DANIELLA","CORINNA","ALANNA","ABBEY","ROXANE","ROSEANNA","MAGNOLIA","LIDA","KYLE","JOELLEN","ERA","CORAL","CARLEEN","TRESA","PEGGIE","NOVELLA","NILA","MAYBELLE","JENELLE","CARINA","NOVA","MELINA","MARQUERITE","MARGARETTE","JOSEPHINA","EVONNE","DEVIN","CINTHIA","ALBINA","TOYA","TAWNYA","SHERITA","SANTOS","MYRIAM","LIZABETH","LISE","KEELY","JENNI","GISELLE","CHERYLE","ARDITH","ARDIS","ALESHA","ADRIANE","SHAINA","LINNEA","KAROLYN","HONG","FLORIDA","FELISHA","DORI","DARCI","ARTIE","ARMIDA","ZOLA","XIOMARA","VERGIE","SHAMIKA","NENA","NANNETTE","MAXIE","LOVIE","JEANE","JAIMIE","INGE","FARRAH","ELAINA","CAITLYN","STARR","FELICITAS","CHERLY","CARYL","YOLONDA","YASMIN","TEENA","PRUDENCE","PENNIE","NYDIA","MACKENZIE","ORPHA","MARVEL","LIZBETH","LAURETTE","JERRIE","HERMELINDA","CAROLEE","TIERRA","MIRIAN","META","MELONY","KORI","JENNETTE","JAMILA","ENA","ANH","YOSHIKO","SUSANNAH","SALINA","RHIANNON","JOLEEN","CRISTINE","ASHTON","ARACELY","TOMEKA","SHALONDA","MARTI","LACIE","KALA","JADA","ILSE","HAILEY","BRITTANI","ZONA","SYBLE","SHERRYL","RANDY","NIDIA","MARLO","KANDICE","KANDI","DEB","DEAN","AMERICA","ALYCIA","TOMMY","RONNA","NORENE","MERCY","JOSE","INGEBORG","GIOVANNA","GEMMA","CHRISTEL","AUDRY","ZORA","VITA","VAN","TRISH","STEPHAINE","SHIRLEE","SHANIKA","MELONIE","MAZIE","JAZMIN","INGA","HOA","HETTIE","GERALYN","FONDA","ESTRELLA","ADELLA","SU","SARITA","RINA","MILISSA","MARIBETH","GOLDA","EVON","ETHELYN","ENEDINA","CHERISE","CHANA","VELVA","TAWANNA","SADE","MIRTA","LI","KARIE","JACINTA","ELNA","DAVINA","CIERRA","ASHLIE","ALBERTHA","TANESHA","STEPHANI","NELLE","MINDI","LU","LORINDA","LARUE","FLORENE","DEMETRA","DEDRA","CIARA","CHANTELLE","ASHLY","SUZY","ROSALVA","NOELIA","LYDA","LEATHA","KRYSTYNA","KRISTAN","KARRI","DARLINE","DARCIE","CINDA","CHEYENNE","CHERRIE","AWILDA","ALMEDA","ROLANDA","LANETTE","JERILYN","GISELE","EVALYN","CYNDI","CLETA","CARIN","ZINA","ZENA","VELIA","TANIKA","PAUL","CHARISSA","THOMAS","TALIA","MARGARETE","LAVONDA","KAYLEE","KATHLENE","JONNA","IRENA","ILONA","IDALIA","CANDIS","CANDANCE","BRANDEE","ANITRA","ALIDA","SIGRID","NICOLETTE","MARYJO","LINETTE","HEDWIG","CHRISTIANA","CASSIDY","ALEXIA","TRESSIE","MODESTA","LUPITA","LITA","GLADIS","EVELIA","DAVIDA","CHERRI","CECILY","ASHELY","ANNABEL","AGUSTINA","WANITA","SHIRLY","ROSAURA","HULDA","EUN","BAILEY","YETTA","VERONA","THOMASINA","SIBYL","SHANNAN","MECHELLE","LUE","LEANDRA","LANI","KYLEE","KANDY","JOLYNN","FERNE","EBONI","CORENE","ALYSIA","ZULA","NADA","MOIRA","LYNDSAY","LORRETTA","JUAN","JAMMIE","HORTENSIA","GAYNELL","CAMERON","ADRIA","VINA","VICENTA","TANGELA","STEPHINE","NORINE","NELLA","LIANA","LESLEE","KIMBERELY","ILIANA","GLORY","FELICA","EMOGENE","ELFRIEDE","EDEN","EARTHA","CARMA","BEA","OCIE","MARRY","LENNIE","KIARA","JACALYN","CARLOTA","ARIELLE","YU","STAR","OTILIA","KIRSTIN","KACEY","JOHNETTA","JOEY","JOETTA","JERALDINE","JAUNITA","ELANA","DORTHEA","CAMI","AMADA","ADELIA","VERNITA","TAMAR","SIOBHAN","RENEA","RASHIDA","OUIDA","ODELL","NILSA","MERYL","KRISTYN","JULIETA","DANICA","BREANNE","AUREA","ANGLEA","SHERRON","ODETTE","MALIA","LORELEI","LIN","LEESA","KENNA","KATHLYN","FIONA","CHARLETTE","SUZIE","SHANTELL","SABRA","RACQUEL","MYONG","MIRA","MARTINE","LUCIENNE","LAVADA","JULIANN","JOHNIE","ELVERA","DELPHIA","CLAIR","CHRISTIANE","CHAROLETTE","CARRI","AUGUSTINE","ASHA","ANGELLA","PAOLA","NINFA","LEDA","LAI","EDA","SUNSHINE","STEFANI","SHANELL","PALMA","MACHELLE","LISSA","KECIA","KATHRYNE","KARLENE","JULISSA","JETTIE","JENNIFFER","HUI","CORRINA","CHRISTOPHER","CAROLANN","ALENA","TESS","ROSARIA","MYRTICE","MARYLEE","LIANE","KENYATTA","JUDIE","JANEY","IN","ELMIRA","ELDORA","DENNA","CRISTI","CATHI","ZAIDA","VONNIE","VIVA","VERNIE","ROSALINE","MARIELA","LUCIANA","LESLI","KARAN","FELICE","DENEEN","ADINA","WYNONA","TARSHA","SHERON","SHASTA","SHANITA","SHANI","SHANDRA","RANDA","PINKIE","PARIS","NELIDA","MARILOU","LYLA","LAURENE","LACI","JOI","JANENE","DOROTHA","DANIELE","DANI","CAROLYNN","CARLYN","BERENICE","AYESHA","ANNELIESE","ALETHEA","THERSA","TAMIKO","RUFINA","OLIVA","MOZELL","MARYLYN","MADISON","KRISTIAN","KATHYRN","KASANDRA","KANDACE","JANAE","GABRIEL","DOMENICA","DEBBRA","DANNIELLE","CHUN","BUFFY","BARBIE","ARCELIA","AJA","ZENOBIA","SHAREN","SHAREE","PATRICK","PAGE","MY","LAVINIA","KUM","KACIE","JACKELINE","HUONG","FELISA","EMELIA","ELEANORA","CYTHIA","CRISTIN","CLYDE","CLARIBEL","CARON","ANASTACIA","ZULMA","ZANDRA","YOKO","TENISHA","SUSANN","SHERILYN","SHAY","SHAWANDA","SABINE","ROMANA","MATHILDA","LINSEY","KEIKO","JOANA","ISELA","GRETTA","GEORGETTA","EUGENIE","DUSTY","DESIRAE","DELORA","CORAZON","ANTONINA","ANIKA","WILLENE","TRACEE","TAMATHA","REGAN","NICHELLE","MICKIE","MAEGAN","LUANA","LANITA","KELSIE","EDELMIRA","BREE","AFTON","TEODORA","TAMIE","SHENA","MEG","LINH","KELI","KACI","DANYELLE","BRITT","ARLETTE","ALBERTINE","ADELLE","TIFFINY","STORMY","SIMONA","NUMBERS","NICOLASA","NICHOL","NIA","NAKISHA","MEE","MAIRA","LOREEN","KIZZY","JOHNNY","JAY","FALLON","CHRISTENE","BOBBYE","ANTHONY","YING","VINCENZA","TANJA","RUBIE","RONI","QUEENIE","MARGARETT","KIMBERLI","IRMGARD","IDELL","HILMA","EVELINA","ESTA","EMILEE","DENNISE","DANIA","CARL","CARIE","ANTONIO","WAI","SANG","RISA","RIKKI","PARTICIA","MUI","MASAKO","MARIO","LUVENIA","LOREE","LONI","LIEN","KEVIN","GIGI","FLORENCIA","DORIAN","DENITA","DALLAS","CHI","BILLYE","ALEXANDER","TOMIKA","SHARITA","RANA","NIKOLE","NEOMA","MARGARITE","MADALYN","LUCINA","LAILA","KALI","JENETTE","GABRIELE","EVELYNE","ELENORA","CLEMENTINA","ALEJANDRINA","ZULEMA","VIOLETTE","VANNESSA","THRESA","RETTA","PIA","PATIENCE","NOELLA","NICKIE","JONELL","DELTA","CHUNG","CHAYA","CAMELIA","BETHEL","ANYA","ANDREW","THANH","SUZANN","SPRING","SHU","MILA","LILLA","LAVERNA","KEESHA","KATTIE","GIA","GEORGENE","EVELINE","ESTELL","ELIZBETH","VIVIENNE","VALLIE","TRUDIE","STEPHANE","MICHEL","MAGALY","MADIE","KENYETTA","KARREN","JANETTA","HERMINE","HARMONY","DRUCILLA","DEBBI","CELESTINA","CANDIE","BRITNI","BECKIE","AMINA","ZITA","YUN","YOLANDE","VIVIEN","VERNETTA","TRUDI","SOMMER","PEARLE","PATRINA","OSSIE","NICOLLE","LOYCE","LETTY","LARISA","KATHARINA","JOSELYN","JONELLE","JENELL","IESHA","HEIDE","FLORINDA","FLORENTINA","FLO","ELODIA","DORINE","BRUNILDA","BRIGID","ASHLI","ARDELLA","TWANA","THU","TARAH","SUNG","SHEA","SHAVON","SHANE","SERINA","RAYNA","RAMONITA","NGA","MARGURITE","LUCRECIA","KOURTNEY","KATI","JESUS","JESENIA","DIAMOND","CRISTA","AYANA","ALICA","ALIA","VINNIE","SUELLEN","ROMELIA","RACHELL","PIPER","OLYMPIA","MICHIKO","KATHALEEN","JOLIE","JESSI","JANESSA","HANA","HA","ELEASE","CARLETTA","BRITANY","SHONA","SALOME","ROSAMOND","REGENA","RAINA","NGOC","NELIA","LOUVENIA","LESIA","LATRINA","LATICIA","LARHONDA","JINA","JACKI","HOLLIS","HOLLEY","EMMY","DEEANN","CORETTA","ARNETTA","VELVET","THALIA","SHANICE","NETA","MIKKI","MICKI","LONNA","LEANA","LASHUNDA","KILEY","JOYE","JACQULYN","IGNACIA","HYUN","HIROKO","HENRY","HENRIETTE","ELAYNE","DELINDA","DARNELL","DAHLIA","COREEN","CONSUELA","CONCHITA","CELINE","BABETTE","AYANNA","ANETTE","ALBERTINA","SKYE","SHAWNEE","SHANEKA","QUIANA","PAMELIA","MIN","MERRI","MERLENE","MARGIT","KIESHA","KIERA","KAYLENE","JODEE","JENISE","ERLENE","EMMIE","ELSE","DARYL","DALILA","DAISEY","CODY","CASIE","BELIA","BABARA","VERSIE","VANESA","SHELBA","SHAWNDA","SAM","NORMAN","NIKIA","NAOMA","MARNA","MARGERET","MADALINE","LAWANA","KINDRA","JUTTA","JAZMINE","JANETT","HANNELORE","GLENDORA","GERTRUD","GARNETT","FREEDA","FREDERICA","FLORANCE","FLAVIA","DENNIS","CARLINE","BEVERLEE","ANJANETTE","VALDA","TRINITY","TAMALA","STEVIE","SHONNA","SHA","SARINA","ONEIDA","MICAH","MERILYN","MARLEEN","LURLINE","LENNA","KATHERIN","JIN","JENI","HAE","GRACIA","GLADY","FARAH","ERIC","ENOLA","EMA","DOMINQUE","DEVONA","DELANA","CECILA","CAPRICE","ALYSHA","ALI","ALETHIA","VENA","THERESIA","TAWNY","SONG","SHAKIRA","SAMARA","SACHIKO","RACHELE","PAMELLA","NICKY","MARNI","MARIEL","MAREN","MALISA","LIGIA","LERA","LATORIA","LARAE","KIMBER","KATHERN","KAREY","JENNEFER","JANETH","HALINA","FREDIA","DELISA","DEBROAH","CIERA","CHIN","ANGELIKA","ANDREE","ALTHA","YEN","VIVAN","TERRESA","TANNA","SUK","SUDIE","SOO","SIGNE","SALENA","RONNI","REBBECCA","MYRTIE","MCKENZIE","MALIKA","MAIDA","LOAN","LEONARDA","KAYLEIGH","FRANCE","ETHYL","ELLYN","DAYLE","CAMMIE","BRITTNI","BIRGIT","AVELINA","ASUNCION","ARIANNA","AKIKO","VENICE","TYESHA","TONIE","TIESHA","TAKISHA","STEFFANIE","SINDY","SANTANA","MEGHANN","MANDA","MACIE","LADY","KELLYE","KELLEE","JOSLYN","JASON","INGER","INDIRA","GLINDA","GLENNIS","FERNANDA","FAUSTINA","ENEIDA","ELICIA","DOT","DIGNA","DELL","ARLETTA","ANDRE","WILLIA","TAMMARA","TABETHA","SHERRELL","SARI","REFUGIO","REBBECA","PAULETTA","NIEVES","NATOSHA","NAKITA","MAMMIE","KENISHA","KAZUKO","KASSIE","GARY","EARLEAN","DAPHINE","CORLISS","CLOTILDE","CAROLYNE","BERNETTA","AUGUSTINA","AUDREA","ANNIS","ANNABELL","YAN","TENNILLE","TAMICA","SELENE","SEAN","ROSANA","REGENIA","QIANA","MARKITA","MACY","LEEANNE","LAURINE","KYM","JESSENIA","JANITA","GEORGINE","GENIE","EMIKO","ELVIE","DEANDRA","DAGMAR","CORIE","COLLEN","CHERISH","ROMAINE","PORSHA","PEARLENE","MICHELINE","MERNA","MARGORIE","MARGARETTA","LORE","KENNETH","JENINE","HERMINA","FREDERICKA","ELKE","DRUSILLA","DORATHY","DIONE","DESIRE","CELENA","BRIGIDA","ANGELES","ALLEGRA","THEO","TAMEKIA","SYNTHIA","STEPHEN","SOOK","SLYVIA","ROSANN","REATHA","RAYE","MARQUETTA","MARGART","LING","LAYLA","KYMBERLY","KIANA","KAYLEEN","KATLYN","KARMEN","JOELLA","IRINA","EMELDA","ELENI","DETRA","CLEMMIE","CHERYLL","CHANTELL","CATHEY","ARNITA","ARLA","ANGLE","ANGELIC","ALYSE","ZOFIA","THOMASINE","TENNIE","SON","SHERLY","SHERLEY","SHARYL","REMEDIOS","PETRINA","NICKOLE","MYUNG","MYRLE","MOZELLA","LOUANNE","LISHA","LATIA","LANE","KRYSTA","JULIENNE","JOEL","JEANENE","JACQUALINE","ISAURA","GWENDA","EARLEEN","DONALD","CLEOPATRA","CARLIE","AUDIE","ANTONIETTA","ALISE","ALEX","VERDELL","VAL","TYLER","TOMOKO","THAO","TALISHA","STEVEN","SO","SHEMIKA","SHAUN","SCARLET","SAVANNA","SANTINA","ROSIA","RAEANN","ODILIA","NANA","MINNA","MAGAN","LYNELLE","LE","KARMA","JOEANN","IVANA","INELL","ILANA","HYE","HONEY","HEE","GUDRUN","FRANK","DREAMA","CRISSY","CHANTE","CARMELINA","ARVILLA","ARTHUR","ANNAMAE","ALVERA","ALEIDA","AARON","YEE","YANIRA","VANDA","TIANNA","TAM","STEFANIA","SHIRA","PERRY","NICOL","NANCIE","MONSERRATE","MINH","MELYNDA","MELANY","MATTHEW","LOVELLA","LAURE","KIRBY","KACY","JACQUELYNN","HYON","GERTHA","FRANCISCO","ELIANA","CHRISTENA","CHRISTEEN","CHARISE","CATERINA","CARLEY","CANDYCE","ARLENA","AMMIE","YANG","WILLETTE","VANITA","TUYET","TINY","SYREETA","SILVA","SCOTT","RONALD","PENNEY","NYLA","MICHAL","MAURICE","MARYAM","MARYA","MAGEN","LUDIE","LOMA","LIVIA","LANELL","KIMBERLIE","JULEE","DONETTA","DIEDRA","DENISHA","DEANE","DAWNE","CLARINE","CHERRYL","BRONWYN","BRANDON","ALLA","VALERY","TONDA","SUEANN","SORAYA","SHOSHANA","SHELA","SHARLEEN","SHANELLE","NERISSA","MICHEAL","MERIDITH","MELLIE","MAYE","MAPLE","MAGARET","LUIS","LILI","LEONILA","LEONIE","LEEANNA","LAVONIA","LAVERA","KRISTEL","KATHEY","KATHE","JUSTIN","JULIAN","JIMMY","JANN","ILDA","HILDRED","HILDEGARDE","GENIA","FUMIKO","EVELIN","ERMELINDA","ELLY","DUNG","DOLORIS","DIONNA","DANAE","BERNEICE","ANNICE","ALIX","VERENA","VERDIE","TRISTAN","SHAWNNA","SHAWANA","SHAUNNA","ROZELLA","RANDEE","RANAE","MILAGRO","LYNELL","LUISE","LOUIE","LOIDA","LISBETH","KARLEEN","JUNITA","JONA","ISIS","HYACINTH","HEDY","GWENN","ETHELENE","ERLINE","EDWARD","DONYA","DOMONIQUE","DELICIA","DANNETTE","CICELY","BRANDA","BLYTHE","BETHANN","ASHLYN","ANNALEE","ALLINE","YUKO","VELLA","TRANG","TOWANDA","TESHA","SHERLYN","NARCISA","MIGUELINA","MERI","MAYBELL","MARLANA","MARGUERITA","MADLYN","LUNA","LORY","LORIANN","LIBERTY","LEONORE","LEIGHANN","LAURICE","LATESHA","LARONDA","KATRICE","KASIE","KARL","KALEY","JADWIGA","GLENNIE","GEARLDINE","FRANCINA","EPIFANIA","DYAN","DORIE","DIEDRE","DENESE","DEMETRICE","DELENA","DARBY","CRISTIE","CLEORA","CATARINA","CARISA","BERNIE","BARBERA","ALMETA","TRULA","TEREASA","SOLANGE","SHEILAH","SHAVONNE","SANORA","ROCHELL","MATHILDE","MARGARETA","MAIA","LYNSEY","LAWANNA","LAUNA","KENA","KEENA","KATIA","JAMEY","GLYNDA","GAYLENE","ELVINA","ELANOR","DANUTA","DANIKA","CRISTEN","CORDIE","COLETTA","CLARITA","CARMON","BRYNN","AZUCENA","AUNDREA","ANGELE","YI","WALTER","VERLIE","VERLENE","TAMESHA","SILVANA","SEBRINA","SAMIRA","REDA","RAYLENE","PENNI","PANDORA","NORAH","NOMA","MIREILLE","MELISSIA","MARYALICE","LARAINE","KIMBERY","KARYL","KARINE","KAM","JOLANDA","JOHANA","JESUSA","JALEESA","JAE","JACQUELYNE","IRISH","ILUMINADA","HILARIA","HANH","GENNIE","FRANCIE","FLORETTA","EXIE","EDDA","DREMA","DELPHA","BEV","BARBAR","ASSUNTA","ARDELL","ANNALISA","ALISIA","YUKIKO","YOLANDO","WONDA","WEI","WALTRAUD","VETA","TEQUILA","TEMEKA","TAMEIKA","SHIRLEEN","SHENITA","PIEDAD","OZELLA","MIRTHA","MARILU","KIMIKO","JULIANE","JENICE","JEN","JANAY","JACQUILINE","HILDE","FE","FAE","EVAN","EUGENE","ELOIS","ECHO","DEVORAH","CHAU","BRINDA","BETSEY","ARMINDA","ARACELIS","APRYL","ANNETT","ALISHIA","VEOLA","USHA","TOSHIKO","THEOLA","TASHIA","TALITHA","SHERY","RUDY","RENETTA","REIKO","RASHEEDA","OMEGA","OBDULIA","MIKA","MELAINE","MEGGAN","MARTIN","MARLEN","MARGET","MARCELINE","MANA","MAGDALEN","LIBRADA","LEZLIE","LEXIE","LATASHIA","LASANDRA","KELLE","ISIDRA","ISA","INOCENCIA","GWYN","FRANCOISE","ERMINIA","ERINN","DIMPLE","DEVORA","CRISELDA","ARMANDA","ARIE","ARIANE","ANGELO","ANGELENA","ALLEN","ALIZA","ADRIENE","ADALINE","XOCHITL","TWANNA","TRAN","TOMIKO","TAMISHA","TAISHA","SUSY","SIU","RUTHA","ROXY","RHONA","RAYMOND","OTHA","NORIKO","NATASHIA","MERRIE","MELVIN","MARINDA","MARIKO","MARGERT","LORIS","LIZZETTE","LEISHA","KAILA","KA","JOANNIE","JERRICA","JENE","JANNET","JANEE","JACINDA","HERTA","ELENORE","DORETTA","DELAINE","DANIELL","CLAUDIE","CHINA","BRITTA","APOLONIA","AMBERLY","ALEASE","YURI","YUK","WEN","WANETA","UTE","TOMI","SHARRI","SANDIE","ROSELLE","REYNALDA","RAGUEL","PHYLICIA","PATRIA","OLIMPIA","ODELIA","MITZIE","MITCHELL","MISS","MINDA","MIGNON","MICA","MENDY","MARIVEL","MAILE","LYNETTA","LAVETTE","LAURYN","LATRISHA","LAKIESHA","KIERSTEN","KARY","JOSPHINE","JOLYN","JETTA","JANISE","JACQUIE","IVELISSE","GLYNIS","GIANNA","GAYNELLE","EMERALD","DEMETRIUS","DANYELL","DANILLE","DACIA","CORALEE","CHER","CEOLA","BRETT","BELL","ARIANNE","ALESHIA","YUNG","WILLIEMAE","TROY","TRINH","THORA","TAI","SVETLANA","SHERIKA","SHEMEKA","SHAUNDA","ROSELINE","RICKI","MELDA","MALLIE","LAVONNA","LATINA","LARRY","LAQUANDA","LALA","LACHELLE","KLARA","KANDIS","JOHNA","JEANMARIE","JAYE","HANG","GRAYCE","GERTUDE","EMERITA","EBONIE","CLORINDA","CHING","CHERY","CAROLA","BREANN","BLOSSOM","BERNARDINE","BECKI","ARLETHA","ARGELIA","ARA","ALITA","YULANDA","YON","YESSENIA","TOBI","TASIA","SYLVIE","SHIRL","SHIRELY","SHERIDAN","SHELLA","SHANTELLE","SACHA","ROYCE","REBECKA","REAGAN","PROVIDENCIA","PAULENE","MISHA","MIKI","MARLINE","MARICA","LORITA","LATOYIA","LASONYA","KERSTIN","KENDA","KEITHA","KATHRIN","JAYMIE","JACK","GRICELDA","GINETTE","ERYN","ELINA","ELFRIEDA","DANYEL","CHEREE","CHANELLE","BARRIE","AVERY","AURORE","ANNAMARIA","ALLEEN","AILENE","AIDE","YASMINE","VASHTI","VALENTINE","TREASA","TORY","TIFFANEY","SHERYLL","SHARIE","SHANAE","SAU","RAISA","PA","NEDA","MITSUKO","MIRELLA","MILDA","MARYANNA","MARAGRET","MABELLE","LUETTA","LORINA","LETISHA","LATARSHA","LANELLE","LAJUANA","KRISSY","KARLY","KARENA","JON","JESSIKA","JERICA","JEANELLE","JANUARY","JALISA","JACELYN","IZOLA","IVEY","GREGORY","EUNA","ETHA","DREW","DOMITILA","DOMINICA","DAINA","CREOLA","CARLI","CAMIE","BUNNY","BRITTNY","ASHANTI","ANISHA","ALEEN","ADAH","YASUKO","WINTER","VIKI","VALRIE","TONA","TINISHA","THI","TERISA","TATUM","TANEKA","SIMONNE","SHALANDA","SERITA","RESSIE","REFUGIA","PAZ","OLENE","NA","MERRILL","MARGHERITA","MANDIE","MAN","MAIRE","LYNDIA","LUCI","LORRIANE","LORETA","LEONIA","LAVONA","LASHAWNDA","LAKIA","KYOKO","KRYSTINA","KRYSTEN","KENIA","KELSI","JUDE","JEANICE","ISOBEL","GEORGIANN","GENNY","FELICIDAD","EILENE","DEON","DELOISE","DEEDEE","DANNIE","CONCEPTION","CLORA","CHERILYN","CHANG","CALANDRA","BERRY","ARMANDINA","ANISA","ULA","TIMOTHY","TIERA","THERESSA","STEPHANIA","SIMA","SHYLA","SHONTA","SHERA","SHAQUITA","SHALA","SAMMY","ROSSANA","NOHEMI","NERY","MORIAH","MELITA","MELIDA","MELANI","MARYLYNN","MARISHA","MARIETTE","MALORIE","MADELENE","LUDIVINA","LORIA","LORETTE","LORALEE","LIANNE","LEON","LAVENIA","LAURINDA","LASHON","KIT","KIMI","KEILA","KATELYNN","KAI","JONE","JOANE","JI","JAYNA","JANELLA","JA","HUE","HERTHA","FRANCENE","ELINORE","DESPINA","DELSIE","DEEDRA","CLEMENCIA","CARRY","CAROLIN","CARLOS","BULAH","BRITTANIE","BOK","BLONDELL","BIBI","BEAULAH","BEATA","ANNITA","AGRIPINA","VIRGEN","VALENE","UN","TWANDA","TOMMYE","TOI","TARRA","TARI","TAMMERA","SHAKIA","SADYE","RUTHANNE","ROCHEL","RIVKA","PURA","NENITA","NATISHA","MING","MERRILEE","MELODEE","MARVIS","LUCILLA","LEENA","LAVETA","LARITA","LANIE","KEREN","ILEEN","GEORGEANN","GENNA","GENESIS","FRIDA","EWA","EUFEMIA","EMELY","ELA","EDYTH","DEONNA","DEADRA","DARLENA","CHANELL","CHAN","CATHERN","CASSONDRA","CASSAUNDRA","BERNARDA","BERNA","ARLINDA","ANAMARIA","ALBERT","WESLEY","VERTIE","VALERI","TORRI","TATYANA","STASIA","SHERISE","SHERILL","SEASON","SCOTTIE","SANDA","RUTHE","ROSY","ROBERTO","ROBBI","RANEE","QUYEN","PEARLY","PALMIRA","ONITA","NISHA","NIESHA","NIDA","NEVADA","NAM","MERLYN","MAYOLA","MARYLOUISE","MARYLAND","MARX","MARTH","MARGENE","MADELAINE","LONDA","LEONTINE","LEOMA","LEIA","LAWRENCE","LAURALEE","LANORA","LAKITA","KIYOKO","KETURAH","KATELIN","KAREEN","JONIE","JOHNETTE","JENEE","JEANETT","IZETTA","HIEDI","HEIKE","HASSIE","HAROLD","GIUSEPPINA","GEORGANN","FIDELA","FERNANDE","ELWANDA","ELLAMAE","ELIZ","DUSTI","DOTTY","CYNDY","CORALIE","CELESTA","ARGENTINA","ALVERTA","XENIA","WAVA","VANETTA","TORRIE","TASHINA","TANDY","TAMBRA","TAMA","STEPANIE","SHILA","SHAUNTA","SHARAN","SHANIQUA","SHAE","SETSUKO","SERAFINA","SANDEE","ROSAMARIA","PRISCILA","OLINDA","NADENE","MUOI","MICHELINA","MERCEDEZ","MARYROSE","MARIN","MARCENE","MAO","MAGALI","MAFALDA","LOGAN","LINN","LANNIE","KAYCE","KAROLINE","KAMILAH","KAMALA","JUSTA","JOLINE","JENNINE","JACQUETTA","IRAIDA","GERALD","GEORGEANNA","FRANCHESCA","FAIRY","EMELINE","ELANE","EHTEL","EARLIE","DULCIE","DALENE","CRIS","CLASSIE","CHERE","CHARIS","CAROYLN","CARMINA","CARITA","BRIAN","BETHANIE","AYAKO","ARICA","AN","ALYSA","ALESSANDRA","AKILAH","ADRIEN","ZETTA","YOULANDA","YELENA","YAHAIRA","XUAN","WENDOLYN","VICTOR","TIJUANA","TERRELL","TERINA","TERESIA","SUZI","SUNDAY","SHERELL","SHAVONDA","SHAUNTE","SHARDA","SHAKITA","SENA","RYANN","RUBI","RIVA","REGINIA","REA","RACHAL","PARTHENIA","PAMULA","MONNIE","MONET","MICHAELE","MELIA","MARINE","MALKA","MAISHA","LISANDRA","LEO","LEKISHA","LEAN","LAURENCE","LAKENDRA","KRYSTIN","KORTNEY","KIZZIE","KITTIE","KERA","KENDAL","KEMBERLY","KANISHA","JULENE","JULE","JOSHUA","JOHANNE","JEFFREY","JAMEE","HAN","HALLEY","GIDGET","GALINA","FREDRICKA","FLETA","FATIMAH","EUSEBIA","ELZA","ELEONORE","DORTHEY","DORIA","DONELLA","DINORAH","DELORSE","CLARETHA","CHRISTINIA","CHARLYN","BONG","BELKIS","AZZIE","ANDERA","AIKO","ADENA","YER","YAJAIRA","WAN","VANIA","ULRIKE","TOSHIA","TIFANY","STEFANY","SHIZUE","SHENIKA","SHAWANNA","SHAROLYN","SHARILYN","SHAQUANA","SHANTAY","SEE","ROZANNE","ROSELEE","RICKIE","REMONA","REANNA","RAELENE","QUINN","PHUNG","PETRONILA","NATACHA","NANCEY","MYRL","MIYOKO","MIESHA","MERIDETH","MARVELLA","MARQUITTA","MARHTA","MARCHELLE","LIZETH","LIBBIE","LAHOMA","LADAWN","KINA","KATHELEEN","KATHARYN","KARISA","KALEIGH","JUNIE","JULIEANN","JOHNSIE","JANEAN","JAIMEE","JACKQUELINE","HISAKO","HERMA","HELAINE","GWYNETH","GLENN","GITA","EUSTOLIA","EMELINA","ELIN","EDRIS","DONNETTE","DONNETTA","DIERDRE","DENAE","DARCEL","CLAUDE","CLARISA","CINDERELLA","CHIA","CHARLESETTA","CHARITA","CELSA","CASSY","CASSI","CARLEE","BRUNA","BRITTANEY","BRANDE","BILLI","BAO","ANTONETTA","ANGLA","ANGELYN","ANALISA","ALANE","WENONA","WENDIE","VERONIQUE","VANNESA","TOBIE","TEMPIE","SUMIKO","SULEMA","SPARKLE","SOMER","SHEBA","SHAYNE","SHARICE","SHANEL","SHALON","SAGE","ROY","ROSIO","ROSELIA","RENAY","REMA","REENA","PORSCHE","PING","PEG","OZIE","ORETHA","ORALEE","ODA","NU","NGAN","NAKESHA","MILLY","MARYBELLE","MARLIN","MARIS","MARGRETT","MARAGARET","MANIE","LURLENE","LILLIA","LIESELOTTE","LAVELLE","LASHAUNDA","LAKEESHA","KEITH","KAYCEE","KALYN","JOYA","JOETTE","JENAE","JANIECE","ILLA","GRISEL","GLAYDS","GENEVIE","GALA","FREDDA","FRED","ELMER","ELEONOR","DEBERA","DEANDREA","DAN","CORRINNE","CORDIA","CONTESSA","COLENE","CLEOTILDE","CHARLOTT","CHANTAY","CECILLE","BEATRIS","AZALEE","ARLEAN","ARDATH","ANJELICA","ANJA","ALFREDIA","ALEISHA","ADAM","ZADA","YUONNE","XIAO","WILLODEAN","WHITLEY","VENNIE","VANNA","TYISHA","TOVA","TORIE","TONISHA","TILDA","TIEN","TEMPLE","SIRENA","SHERRIL","SHANTI","SHAN","SENAIDA","SAMELLA","ROBBYN","RENDA","REITA","PHEBE","PAULITA","NOBUKO","NGUYET","NEOMI","MOON","MIKAELA","MELANIA","MAXIMINA","MARG","MAISIE","LYNNA","LILLI","LAYNE","LASHAUN","LAKENYA","LAEL","KIRSTIE","KATHLINE","KASHA","KARLYN","KARIMA","JOVAN","JOSEFINE","JENNELL","JACQUI","JACKELYN","HYO","HIEN","GRAZYNA","FLORRIE","FLORIA","ELEONORA","DWANA","DORLA","DONG","DELMY","DEJA","DEDE","DANN","CRYSTA","CLELIA","CLARIS","CLARENCE","CHIEKO","CHERLYN","CHERELLE","CHARMAIN","CHARA","CAMMY","BEE","ARNETTE","ARDELLE","ANNIKA","AMIEE","AMEE","ALLENA","YVONE","YUKI","YOSHIE","YEVETTE","YAEL","WILLETTA","VONCILE","VENETTA","TULA","TONETTE","TIMIKA","TEMIKA","TELMA","TEISHA","TAREN","TA","STACEE","SHIN","SHAWNTA","SATURNINA","RICARDA","POK","PASTY","ONIE","NUBIA","MORA","MIKE","MARIELLE","MARIELLA","MARIANELA","MARDELL","MANY","LUANNA","LOISE","LISABETH","LINDSY","LILLIANA","LILLIAM","LELAH","LEIGHA","LEANORA","LANG","KRISTEEN","KHALILAH","KEELEY","KANDRA","JUNKO","JOAQUINA","JERLENE","JANI","JAMIKA","JAME","HSIU","HERMILA","GOLDEN","GENEVIVE","EVIA","EUGENA","EMMALINE","ELFREDA","ELENE","DONETTE","DELCIE","DEEANNA","DARCEY","CUC","CLARINDA","CIRA","CHAE","CELINDA","CATHERYN","CATHERIN","CASIMIRA","CARMELIA","CAMELLIA","BREANA","BOBETTE","BERNARDINA","BEBE","BASILIA","ARLYNE","AMAL","ALAYNA","ZONIA","ZENIA","YURIKO","YAEKO","WYNELL","WILLOW","WILLENA","VERNIA","TU","TRAVIS","TORA","TERRILYN","TERICA","TENESHA","TAWNA","TAJUANA","TAINA","STEPHNIE","SONA","SOL","SINA","SHONDRA","SHIZUKO","SHERLENE","SHERICE","SHARIKA","ROSSIE","ROSENA","RORY","RIMA","RIA","RHEBA","RENNA","PETER","NATALYA","NANCEE","MELODI","MEDA","MAXIMA","MATHA","MARKETTA","MARICRUZ","MARCELENE","MALVINA","LUBA","LOUETTA","LEIDA","LECIA","LAURAN","LASHAWNA","LAINE","KHADIJAH","KATERINE","KASI","KALLIE","JULIETTA","JESUSITA","JESTINE","JESSIA","JEREMY","JEFFIE","JANYCE","ISADORA","GEORGIANNE","FIDELIA","EVITA","EURA","EULAH","ESTEFANA","ELSY","ELIZABET","ELADIA","DODIE","DION","DIA","DENISSE","DELORAS","DELILA","DAYSI","DAKOTA","CURTIS","CRYSTLE","CONCHA","COLBY","CLARETTA","CHU","CHRISTIA","CHARLSIE","CHARLENA","CARYLON","BETTYANN","ASLEY","ASHLEA","AMIRA","AI","AGUEDA","AGNUS","YUETTE","VINITA","VICTORINA","TYNISHA","TREENA","TOCCARA","TISH","THOMASENA","TEGAN","SOILA","SHILOH","SHENNA","SHARMAINE","SHANTAE","SHANDI","SEPTEMBER","SARAN","SARAI","SANA","SAMUEL","SALLEY","ROSETTE","ROLANDE","REGINE","OTELIA","OSCAR","OLEVIA","NICHOLLE","NECOLE","NAIDA","MYRTA","MYESHA","MITSUE","MINTA","MERTIE","MARGY","MAHALIA","MADALENE","LOVE","LOURA","LOREAN","LEWIS","LESHA","LEONIDA","LENITA","LAVONE","LASHELL","LASHANDRA","LAMONICA","KIMBRA","KATHERINA","KARRY","KANESHA","JULIO","JONG","JENEVA","JAQUELYN","HWA","GILMA","GHISLAINE","GERTRUDIS","FRANSISCA","FERMINA","ETTIE","ETSUKO","ELLIS","ELLAN","ELIDIA","EDRA","DORETHEA","DOREATHA","DENYSE","DENNY","DEETTA","DAINE","CYRSTAL","CORRIN","CAYLA","CARLITA","CAMILA","BURMA","BULA","BUENA","BLAKE","BARABARA","AVRIL","AUSTIN","ALAINE","ZANA","WILHEMINA","WANETTA","VIRGIL","VI","VERONIKA","VERNON","VERLINE","VASILIKI","TONITA","TISA","TEOFILA","TAYNA","TAUNYA","TANDRA","TAKAKO","SUNNI","SUANNE","SIXTA","SHARELL","SEEMA","RUSSELL","ROSENDA","ROBENA","RAYMONDE","PEI","PAMILA","OZELL","NEIDA","NEELY","MISTIE","MICHA","MERISSA","MAURITA","MARYLN","MARYETTA","MARSHALL","MARCELL","MALENA","MAKEDA","MADDIE","LOVETTA","LOURIE","LORRINE","LORILEE","LESTER","LAURENA","LASHAY","LARRAINE","LAREE","LACRESHA","KRISTLE","KRISHNA","KEVA","KEIRA","KAROLE","JOIE","JINNY","JEANNETTA","JAMA","HEIDY","GILBERTE","GEMA","FAVIOLA","EVELYNN","ENDA","ELLI","ELLENA","DIVINA","DAGNY","COLLENE","CODI","CINDIE","CHASSIDY","CHASIDY","CATRICE","CATHERINA","CASSEY","CAROLL","CARLENA","CANDRA","CALISTA","BRYANNA","BRITTENY","BEULA","BARI","AUDRIE","AUDRIA","ARDELIA","ANNELLE","ANGILA","ALONA","ALLYN","DOUGLAS","ROGER","JONATHAN","RALPH","NICHOLAS","BENJAMIN","BRUCE","HARRY","WAYNE","STEVE","HOWARD","ERNEST","PHILLIP","TODD","CRAIG","ALAN","PHILIP","EARL","DANNY","BRYAN","STANLEY","LEONARD","NATHAN","MANUEL","RODNEY","MARVIN","VINCENT","JEFFERY","JEFF","CHAD","JACOB","ALFRED","BRADLEY","HERBERT","FREDERICK","EDWIN","DON","RICKY","RANDALL","BARRY","BERNARD","LEROY","MARCUS","THEODORE","CLIFFORD","MIGUEL","JIM","TOM","CALVIN","BILL","LLOYD","DEREK","WARREN","DARRELL","JEROME","FLOYD","ALVIN","TIM","GORDON","GREG","JORGE","DUSTIN","PEDRO","DERRICK","ZACHARY","HERMAN","GLEN","HECTOR","RICARDO","RICK","BRENT","RAMON","GILBERT","MARC","REGINALD","RUBEN","NATHANIEL","RAFAEL","EDGAR","MILTON","RAUL","BEN","CHESTER","DUANE","FRANKLIN","BRAD","RON","ROLAND","ARNOLD","HARVEY","JARED","ERIK","DARRYL","NEIL","JAVIER","FERNANDO","CLINTON","TED","MATHEW","TYRONE","DARREN","LANCE","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","EVERETT","IAN","WALLACE","KEN","BOB","ALFREDO","ALBERTO","DAVE","IVAN","BYRON","ISAAC","MORRIS","CLIFTON","WILLARD","ROSS","ANDY","SALVADOR","KIRK","SERGIO","SETH","KENT","TERRANCE","EDUARDO","TERRENCE","ENRIQUE","WADE","STUART","FREDRICK","ARTURO","ALEJANDRO","NICK","LUTHER","WENDELL","JEREMIAH","JULIUS","OTIS","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","LYLE","MATT","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","NEAL","PABLO","LORENZO","OMAR","WILBUR","GRANT","HORACE","RODERICK","ABRAHAM","WILLIS","RICKEY","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","PRESTON","ALTON","ARCHIE","MARCO","WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","GERARDO","ED","DOMINIC","DELBERT","COLIN","GUILLERMO","EARNEST","LUCAS","BENNY","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON","SYLVESTER","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","CLARK","IRVING","BRYANT","OWEN","RUFUS","WOODROW","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","GILBERTO","CLINT","NICOLAS","ISMAEL","ORVILLE","ERVIN","DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","STEWART","DOYLE","DARREL","ROGELIO","TERENCE","SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY","DEXTER","BRADFORD","DARIN","AMOS","MOSES","IRVIN","SAUL","ROMAN","RANDAL","TIMMY","DARRIN","WINSTON","BRENDAN","ABEL","DOMINICK","BOYD","EMILIO","ELIJAH","DOMINGO","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY","REYNALDO","BRET","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","VICENTE","LAMONT","GARLAND","MILES","EFRAIN","HEATH","RODGER","HARLEY","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","STERLING","CHASE","GROVER","ELTON","CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE","BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO","BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","GREGORIO","BUDDY","XAVIER","KERMIT","ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD","KENDRICK","DARIUS","MOISES","FIDEL","THADDEUS","CLIFF","MARCEL","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE","JOESPH","THURMAN","NED","RUSTY","MONTY","FABIAN","REGGIE","MASON","GRAHAM","ISAIAH","VAUGHN","GUS","LOYD","DIEGO","ADOLPH","NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","WILEY","RIGOBERTO","ALPHONSO","TY","NOE","VERN","REED","JEFFERSON","ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN","FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DANTE","CLEMENT","COY","MAXWELL","JARVIS","BRUNO","ISSAC","DUDLEY","BROCK","SANFORD","CARMELO","BARNEY","NESTOR","STEFAN","DONNY","ART","LINWOOD","BEAU","WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","IRWIN","MERLIN","CHARLEY","MARCELINO","HARRIS","CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD","MARIANO","DANIAL","LANDON","DIRK","BRANDEN","ADAN","BUFORD","GERMAN","WILMER","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL","DALTON","MONROE","JOSUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","HOUSTON","ROBBY","LINCOLN","GENARO","BENNETT","OCTAVIO","CORNELL","HUNG","ARRON","ANTONY","HERSCHEL","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY","LON","FREEMAN","DUNCAN","KENNITH","CARMINE","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS","FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JARRETT","BROOKS","ABDUL","LUCIANO","SEYMOUR","EUGENIO","MOHAMMED","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","ALDO","RUBIN","ROYAL","MITCH","EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF","ELOY","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","BURT","JULES","GIL","ELISEO","AHMAD","NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","TREY","NORBERTO","NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT","BRENTON","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","ALEC","TANNER","JARRED","DONN","TAD","PRINCE","PORFIRIO","ODIS","LENARD","CHAUNCEY","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ORVAL","MAURO","ZACHARIAH","OLEN","ANIBAL","MILO","JED","DILLON","AMADO","NEWTON","LENNY","RICHIE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","MAC","JONAH","JERROLD","ROBT","HANK","RUPERT","ROLLAND","KENTON","DAMION","ANTONE","WALDO","FREDRIC","BRADLY","KIP","BURL","WALKER","TYREE","JEFFEREY","AHMED","WILLY","STANFORD","OREN","NOBLE","MOSHE","MIKEL","ENOCH","BRENDON","QUINTIN","JAMISON","FLORENCIO","DARRICK","TOBIAS","HASSAN","GIUSEPPE","DEMARCUS","CLETUS","TYRELL","LYNDON","KEENAN","WERNER","GERALDO","COLUMBUS","CHET","BERTRAM","MARKUS","HUEY","HILTON","DWAIN","DONTE","TYRON","OMER","ISAIAS","HIPOLITO","FERMIN","ADALBERTO","BO","BARRETT","TEODORO","MCKINLEY","MAXIMO","GARFIELD","RALEIGH","LAWERENCE","ABRAM","RASHAD","KING","EMMITT","DARON","SAMUAL","MIQUEL","EUSEBIO","DOMENIC","DARRON","BUSTER","WILBER","RENATO","JC","HOYT","HAYWOOD","EZEKIEL","CHAS","FLORENTINO","ELROY","CLEMENTE","ARDEN","NEVILLE","EDISON","DESHAWN","NATHANIAL","JORDON","DANILO","CLAUD","SHERWOOD","RAYMON","RAYFORD","CRISTOBAL","AMBROSE","TITUS","HYMAN","FELTON","EZEQUIEL","ERASMO","STANTON","LONNY","LEN","IKE","MILAN","LINO","JAROD","HERB","ANDREAS","WALTON","RHETT","PALMER","DOUGLASS","CORDELL","OSWALDO","ELLSWORTH","VIRGILIO","TONEY","NATHANAEL","DEL","BENEDICT","MOSE","JOHNSON","ISREAL","GARRET","FAUSTO","ASA","ARLEN","ZACK","WARNER","MODESTO","FRANCESCO","MANUAL","GAYLORD","GASTON","FILIBERTO","DEANGELO","MICHALE","GRANVILLE","WES","MALIK","ZACKARY","TUAN","ELDRIDGE","CRISTOPHER","CORTEZ","ANTIONE","MALCOM","LONG","KOREY","JOSPEH","COLTON","WAYLON","VON","HOSEA","SHAD","SANTO","RUDOLF","ROLF","REY","RENALDO","MARCELLUS","LUCIUS","KRISTOFER","BOYCE","BENTON","HAYDEN","HARLAND","ARNOLDO","RUEBEN","LEANDRO","KRAIG","JERRELL","JEROMY","HOBERT","CEDRICK","ARLIE","WINFORD","WALLY","LUIGI","KENETH","JACINTO","GRAIG","FRANKLYN","EDMUNDO","SID","PORTER","LEIF","JERAMY","BUCK","WILLIAN","VINCENZO","SHON","LYNWOOD","JERE","HAI","ELDEN","DORSEY","DARELL","BRODERICK","ALONSO" |
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
8C TS KC 9H 4S 7D 2S 5D 3S AC | |
5C AD 5D AC 9C 7C 5H 8D TD KS | |
3H 7H 6S KC JS QH TD JC 2D 8S | |
TH 8H 5C QS TC 9H 4D JC KS JS | |
7C 5H KC QH JD AS KH 4C AD 4S | |
5H KS 9C 7D 9H 8D 3S 5D 5C AH | |
6H 4H 5C 3H 2H 3S QH 5S 6S AS | |
TD 8C 4H 7C TC KC 4C 3H 7S KS | |
7C 9C 6D KD 3H 4C QS QC AC KH | |
JC 6S 5H 2H 2D KD 9D 7C AS JS | |
AD QH TH 9D 8H TS 6D 3S AS AC | |
2H 4S 5C 5S TC KC JD 6C TS 3C | |
QD AS 6H JS 2C 3D 9H KC 4H 8S | |
KD 8S 9S 7C 2S 3S 6D 6S 4H KC | |
3C 8C 2D 7D 4D 9S 4S QH 4H JD | |
8C KC 7S TC 2D TS 8H QD AC 5C | |
3D KH QD 6C 6S AD AS 8H 2H QS | |
6S 8D 4C 8S 6C QH TC 6D 7D 9D | |
2S 8D 8C 4C TS 9S 9D 9C AC 3D | |
3C QS 2S 4H JH 3D 2D TD 8S 9H | |
5H QS 8S 6D 3C 8C JD AS 7H 7D | |
6H TD 9D AS JH 6C QC 9S KD JC | |
AH 8S QS 4D TH AC TS 3C 3D 5C | |
5S 4D JS 3D 8H 6C TS 3S AD 8C | |
6D 7C 5D 5H 3S 5C JC 2H 5S 3D | |
5H 6H 2S KS 3D 5D JD 7H JS 8H | |
KH 4H AS JS QS QC TC 6D 7C KS | |
3D QS TS 2H JS 4D AS 9S JC KD | |
QD 5H 4D 5D KH 7H 3D JS KD 4H | |
2C 9H 6H 5C 9D 6C JC 2D TH 9S | |
7D 6D AS QD JH 4D JS 7C QS 5C | |
3H KH QD AD 8C 8H 3S TH 9D 5S | |
AH 9S 4D 9D 8S 4H JS 3C TC 8D | |
2C KS 5H QD 3S TS 9H AH AD 8S | |
5C 7H 5D KD 9H 4D 3D 2D KS AD | |
KS KC 9S 6D 2C QH 9D 9H TS TC | |
9C 6H 5D QH 4D AD 6D QC JS KH | |
9S 3H 9D JD 5C 4D 9H AS TC QH | |
2C 6D JC 9C 3C AD 9S KH 9D 7D | |
KC 9C 7C JC JS KD 3H AS 3C 7D | |
QD KH QS 2C 3S 8S 8H 9H 9C JC | |
QH 8D 3C KC 4C 4H 6D AD 9H 9D | |
3S KS QS 7H KH 7D 5H 5D JD AD | |
2H 2C 6H TH TC 7D 8D 4H 8C AS | |
4S 2H AC QC 3S 6D TH 4D 4C KH | |
4D TC KS AS 7C 3C 6D 2D 9H 6C | |
8C TD 5D QS 2C 7H 4C 9C 3H 9H | |
5H JH TS 7S TD 6H AD QD 8H 8S | |
5S AD 9C 8C 7C 8D 5H 9D 8S 2S | |
4H KH KS 9S 2S KC 5S AD 4S 7D | |
QS 9C QD 6H JS 5D AC 8D 2S AS | |
KH AC JC 3S 9D 9S 3C 9C 5S JS | |
AD 3C 3D KS 3S 5C 9C 8C TS 4S | |
JH 8D 5D 6H KD QS QD 3D 6C KC | |
8S JD 6C 3S 8C TC QC 3C QH JS | |
KC JC 8H 2S 9H 9C JH 8S 8C 9S | |
8S 2H QH 4D QC 9D KC AS TH 3C | |
8S 6H TH 7C 2H 6S 3C 3H AS 7S | |
QH 5S JS 4H 5H TS 8H AH AC JC | |
9D 8H 2S 4S TC JC 3C 7H 3H 5C | |
3D AD 3C 3S 4C QC AS 5D TH 8C | |
6S 9D 4C JS KH AH TS JD 8H AD | |
4C 6S 9D 7S AC 4D 3D 3S TC JD | |
AD 7H 6H 4H JH KC TD TS 7D 6S | |
8H JH TC 3S 8D 8C 9S 2C 5C 4D | |
2C 9D KC QH TH QS JC 9C 4H TS | |
QS 3C QD 8H KH 4H 8D TD 8S AC | |
7C 3C TH 5S 8H 8C 9C JD TC KD | |
QC TC JD TS 8C 3H 6H KD 7C TD | |
JH QS KS 9C 6D 6S AS 9H KH 6H | |
2H 4D AH 2D JH 6H TD 5D 4H JD | |
KD 8C 9S JH QD JS 2C QS 5C 7C | |
4S TC 7H 8D 2S 6H 7S 9C 7C KC | |
8C 5D 7H 4S TD QC 8S JS 4H KS | |
AD 8S JH 6D TD KD 7C 6C 2D 7D | |
JC 6H 6S JS 4H QH 9H AH 4C 3C | |
6H 5H AS 7C 7S 3D KH KC 5D 5C | |
JC 3D TD AS 4D 6D 6S QH JD KS | |
8C 7S 8S QH 2S JD 5C 7H AH QD | |
8S 3C 6H 6C 2C 8D TD 7D 4C 4D | |
5D QH KH 7C 2S 7H JS 6D QC QD | |
AD 6C 6S 7D TH 6H 2H 8H KH 4H | |
KS JS KD 5D 2D KH 7D 9C 8C 3D | |
9C 6D QD 3C KS 3S 7S AH JD 2D | |
AH QH AS JC 8S 8H 4C KC TH 7D | |
JC 5H TD 7C 5D KD 4C AD 8H JS | |
KC 2H AC AH 7D JH KH 5D 7S 6D | |
9S 5S 9C 6H 8S TD JD 9H 6C AC | |
7D 8S 6D TS KD 7H AC 5S 7C 5D | |
AH QC JC 4C TC 8C 2H TS 2C 7D | |
KD KC 6S 3D 7D 2S 8S 3H 5S 5C | |
8S 5D 8H 4C 6H KC 3H 7C 5S KD | |
JH 8C 3D 3C 6C KC TD 7H 7C 4C | |
JC KC 6H TS QS TD KS 8H 8C 9S | |
6C 5S 9C QH 7D AH KS KC 9S 2C | |
4D 4S 8H TD 9C 3S 7D 9D AS TH | |
6S 7D 3C 6H 5D KD 2C 5C 9D 9C | |
2H KC 3D AD 3H QD QS 8D JC 4S | |
8C 3H 9C 7C AD 5D JC 9D JS AS | |
5D 9H 5C 7H 6S 6C QC JC QD 9S | |
JC QS JH 2C 6S 9C QC 3D 4S TC | |
4H 5S 8D 3D 4D 2S KC 2H JS 2C | |
TD 3S TH KD 4D 7H JH JS KS AC | |
7S 8C 9S 2D 8S 7D 5C AD 9D AS | |
8C 7H 2S 6C TH 3H 4C 3S 8H AC | |
KD 5H JC 8H JD 2D 4H TD JH 5C | |
3D AS QH KS 7H JD 8S 5S 6D 5H | |
9S 6S TC QS JC 5C 5D 9C TH 8C | |
5H 3S JH 9H 2S 2C 6S 7S AS KS | |
8C QD JC QS TC QC 4H AC KH 6C | |
TC 5H 7D JH 4H 2H 8D JC KS 4D | |
5S 9C KH KD 9H 5C TS 3D 7D 2D | |
5H AS TC 4D 8C 2C TS 9D 3H 8D | |
6H 8D 2D 9H JD 6C 4S 5H 5S 6D | |
AD 9C JC 7D 6H 9S 6D JS 9H 3C | |
AD JH TC QS 4C 5D 9S 7C 9C AH | |
KD 6H 2H TH 8S QD KS 9D 9H AS | |
4H 8H 8D 5H 6C AH 5S AS AD 8S | |
QS 5D 4S 2H TD KS 5H AC 3H JC | |
9C 7D QD KD AC 6D 5H QH 6H 5S | |
KC AH QH 2H 7D QS 3H KS 7S JD | |
6C 8S 3H 6D KS QD 5D 5C 8H TC | |
9H 4D 4S 6S 9D KH QC 4H 6C JD | |
TD 2D QH 4S 6H JH KD 3C QD 8C | |
4S 6H 7C QD 9D AS AH 6S AD 3C | |
2C KC TH 6H 8D AH 5C 6D 8S 5D | |
TD TS 7C AD JC QD 9H 3C KC 7H | |
5D 4D 5S 8H 4H 7D 3H JD KD 2D | |
JH TD 6H QS 4S KD 5C 8S 7D 8H | |
AC 3D AS 8C TD 7H KH 5D 6C JD | |
9D KS 7C 6D QH TC JD KD AS KC | |
JH 8S 5S 7S 7D AS 2D 3D AD 2H | |
2H 5D AS 3C QD KC 6H 9H 9S 2C | |
9D 5D TH 4C JH 3H 8D TC 8H 9H | |
6H KD 2C TD 2H 6C 9D 2D JS 8C | |
KD 7S 3C 7C AS QH TS AD 8C 2S | |
QS 8H 6C JS 4C 9S QC AD TD TS | |
2H 7C TS TC 8C 3C 9H 2D 6D JC | |
TC 2H 8D JH KS 6D 3H TD TH 8H | |
9D TD 9H QC 5D 6C 8H 8C KC TS | |
2H 8C 3D AH 4D TH TC 7D 8H KC | |
TS 5C 2D 8C 6S KH AH 5H 6H KC | |
5S 5D AH TC 4C JD 8D 6H 8C 6C | |
KC QD 3D 8H 2D JC 9H 4H AD 2S | |
TD 6S 7D JS KD 4H QS 2S 3S 8C | |
4C 9H JH TS 3S 4H QC 5S 9S 9C | |
2C KD 9H JS 9S 3H JC TS 5D AC | |
AS 2H 5D AD 5H JC 7S TD JS 4C | |
2D 4S 8H 3D 7D 2C AD KD 9C TS | |
7H QD JH 5H JS AC 3D TH 4C 8H | |
6D KH KC QD 5C AD 7C 2D 4H AC | |
3D 9D TC 8S QD 2C JC 4H JD AH | |
6C TD 5S TC 8S AH 2C 5D AS AC | |
TH 7S 3D AS 6C 4C 7H 7D 4H AH | |
5C 2H KS 6H 7S 4H 5H 3D 3C 7H | |
3C 9S AC 7S QH 2H 3D 6S 3S 3H | |
2D 3H AS 2C 6H TC JS 6S 9C 6C | |
QH KD QD 6D AC 6H KH 2C TS 8C | |
8H 7D 3S 9H 5D 3H 4S QC 9S 5H | |
2D 9D 7H 6H 3C 8S 5H 4D 3S 4S | |
KD 9S 4S TC 7S QC 3S 8S 2H 7H | |
TC 3D 8C 3H 6C 2H 6H KS KD 4D | |
KC 3D 9S 3H JS 4S 8H 2D 6C 8S | |
6H QS 6C TC QD 9H 7D 7C 5H 4D | |
TD 9D 8D 6S 6C TC 5D TS JS 8H | |
4H KC JD 9H TC 2C 6S 5H 8H AS | |
JS 9C 5C 6S 9D JD 8H KC 4C 6D | |
4D 8D 8S 6C 7C 6H 7H 8H 5C KC | |
TC 3D JC 6D KS 9S 6H 7S 9C 2C | |
6C 3S KD 5H TS 7D 9H 9S 6H KH | |
3D QD 4C 6H TS AC 3S 5C 2H KD | |
4C AS JS 9S 7C TS 7H 9H JC KS | |
4H 8C JD 3H 6H AD 9S 4S 5S KS | |
4C 2C 7D 3D AS 9C 2S QS KC 6C | |
8S 5H 3D 2S AC 9D 6S 3S 4D TD | |
QD TH 7S TS 3D AC 7H 6C 5D QC | |
TC QD AD 9C QS 5C 8D KD 3D 3C | |
9D 8H AS 3S 7C 8S JD 2D 8D KC | |
4C TH AC QH JS 8D 7D 7S 9C KH | |
9D 8D 4C JH 2C 2S QD KD TS 4H | |
4D 6D 5D 2D JH 3S 8S 3H TC KH | |
AD 4D 2C QS 8C KD JH JD AH 5C | |
5C 6C 5H 2H JH 4H KS 7C TC 3H | |
3C 4C QC 5D JH 9C QD KH 8D TC | |
3H 9C JS 7H QH AS 7C 9H 5H JC | |
2D 5S QD 4S 3C KC 6S 6C 5C 4C | |
5D KH 2D TS 8S 9C AS 9S 7C 4C | |
7C AH 8C 8D 5S KD QH QS JH 2C | |
8C 9D AH 2H AC QC 5S 8H 7H 2C | |
QD 9H 5S QS QC 9C 5H JC TH 4H | |
6C 6S 3H 5H 3S 6H KS 8D AC 7S | |
AC QH 7H 8C 4S KC 6C 3D 3S TC | |
9D 3D JS TH AC 5H 3H 8S 3S TC | |
QD KH JS KS 9S QC 8D AH 3C AC | |
5H 6C KH 3S 9S JH 2D QD AS 8C | |
6C 4D 7S 7H 5S JC 6S 9H 4H JH | |
AH 5S 6H 9S AD 3S TH 2H 9D 8C | |
4C 8D 9H 7C QC AD 4S 9C KC 5S | |
9D 6H 4D TC 4C JH 2S 5D 3S AS | |
2H 6C 7C KH 5C AD QS TH JD 8S | |
3S 4S 7S AH AS KC JS 2S AD TH | |
JS KC 2S 7D 8C 5C 9C TS 5H 9D | |
7S 9S 4D TD JH JS KH 6H 5D 2C | |
JD JS JC TH 2D 3D QD 8C AC 5H | |
7S KH 5S 9D 5D TD 4S 6H 3C 2D | |
4S 5D AC 8D 4D 7C AD AS AH 9C | |
6S TH TS KS 2C QC AH AS 3C 4S | |
2H 8C 3S JC 5C 7C 3H 3C KH JH | |
7S 3H JC 5S 6H 4C 2S 4D KC 7H | |
4D 7C 4H 9S 8S 6S AD TC 6C JC | |
KH QS 3S TC 4C 8H 8S AC 3C TS | |
QD QS TH 3C TS 7H 7D AH TD JC | |
TD JD QC 4D 9S 7S TS AD 7D AC | |
AH 7H 4S 6D 7C 2H 9D KS JC TD | |
7C AH JD 4H 6D QS TS 2H 2C 5C | |
TC KC 8C 9S 4C JS 3C JC 6S AH | |
AS 7D QC 3D 5S JC JD 9D TD KH | |
TH 3C 2S 6H AH AC 5H 5C 7S 8H | |
QC 2D AC QD 2S 3S JD QS 6S 8H | |
KC 4H 3C 9D JS 6H 3S 8S AS 8C | |
7H KC 7D JD 2H JC QH 5S 3H QS | |
9H TD 3S 8H 7S AC 5C 6C AH 7C | |
8D 9H AH JD TD QS 7D 3S 9C 8S | |
AH QH 3C JD KC 4S 5S 5D TD KS | |
9H 7H 6S JH TH 4C 7C AD 5C 2D | |
7C KD 5S TC 9D 6S 6C 5D 2S TH | |
KC 9H 8D 5H 7H 4H QC 3D 7C AS | |
6S 8S QC TD 4S 5C TH QS QD 2S | |
8S 5H TH QC 9H 6S KC 7D 7C 5C | |
7H KD AH 4D KH 5C 4S 2D KC QH | |
6S 2C TD JC AS 4D 6C 8C 4H 5S | |
JC TC JD 5S 6S 8D AS 9D AD 3S | |
6D 6H 5D 5S TC 3D 7D QS 9D QD | |
4S 6C 8S 3S 7S AD KS 2D 7D 7C | |
KC QH JC AC QD 5D 8D QS 7H 7D | |
JS AH 8S 5H 3D TD 3H 4S 6C JH | |
4S QS 7D AS 9H JS KS 6D TC 5C | |
2D 5C 6H TC 4D QH 3D 9H 8S 6C | |
6D 7H TC TH 5S JD 5C 9C KS KD | |
8D TD QH 6S 4S 6C 8S KC 5C TC | |
5S 3D KS AC 4S 7D QD 4C TH 2S | |
TS 8H 9S 6S 7S QH 3C AH 7H 8C | |
4C 8C TS JS QC 3D 7D 5D 7S JH | |
8S 7S 9D QC AC 7C 6D 2H JH KC | |
JS KD 3C 6S 4S 7C AH QC KS 5H | |
KS 6S 4H JD QS TC 8H KC 6H AS | |
KH 7C TC 6S TD JC 5C 7D AH 3S | |
3H 4C 4H TC TH 6S 7H 6D 9C QH | |
7D 5H 4S 8C JS 4D 3D 8S QH KC | |
3H 6S AD 7H 3S QC 8S 4S 7S JS | |
3S JD KH TH 6H QS 9C 6C 2D QD | |
4S QH 4D 5H KC 7D 6D 8D TH 5S | |
TD AD 6S 7H KD KH 9H 5S KC JC | |
3H QC AS TS 4S QD KS 9C 7S KC | |
TS 6S QC 6C TH TC 9D 5C 5D KD | |
JS 3S 4H KD 4C QD 6D 9S JC 9D | |
8S JS 6D 4H JH 6H 6S 6C KS KH | |
AC 7D 5D TC 9S KH 6S QD 6H AS | |
AS 7H 6D QH 8D TH 2S KH 5C 5H | |
4C 7C 3D QC TC 4S KH 8C 2D JS | |
6H 5D 7S 5H 9C 9H JH 8S TH 7H | |
AS JS 2S QD KH 8H 4S AC 8D 8S | |
3H 4C TD KD 8C JC 5C QS 2D JD | |
TS 7D 5D 6C 2C QS 2H 3C AH KS | |
4S 7C 9C 7D JH 6C 5C 8H 9D QD | |
2S TD 7S 6D 9C 9S QS KH QH 5C | |
JC 6S 9C QH JH 8D 7S JS KH 2H | |
8D 5H TH KC 4D 4S 3S 6S 3D QS | |
2D JD 4C TD 7C 6D TH 7S JC AH | |
QS 7S 4C TH 9D TS AD 4D 3H 6H | |
2D 3H 7D JD 3D AS 2S 9C QC 8S | |
4H 9H 9C 2C 7S JH KD 5C 5D 6H | |
TC 9H 8H JC 3C 9S 8D KS AD KC | |
TS 5H JD QS QH QC 8D 5D KH AH | |
5D AS 8S 6S 4C AH QC QD TH 7H | |
3H 4H 7D 6S 4S 9H AS 8H JS 9D | |
JD 8C 2C 9D 7D 5H 5S 9S JC KD | |
KD 9C 4S QD AH 7C AD 9D AC TD | |
6S 4H 4S 9C 8D KS TC 9D JH 7C | |
5S JC 5H 4S QH AC 2C JS 2S 9S | |
8C 5H AS QD AD 5C 7D 8S QC TD | |
JC 4C 8D 5C KH QS 4D 6H 2H 2C | |
TH 4S 2D KC 3H QD AC 7H AD 9D | |
KH QD AS 8H TH KC 8D 7S QH 8C | |
JC 6C 7D 8C KH AD QS 2H 6S 2D | |
JC KH 2D 7D JS QC 5H 4C 5D AD | |
TS 3S AD 4S TD 2D TH 6S 9H JH | |
9H 2D QS 2C 4S 3D KH AS AC 9D | |
KH 6S 8H 4S KD 7D 9D TS QD QC | |
JH 5H AH KS AS AD JC QC 5S KH | |
5D 7D 6D KS KD 3D 7C 4D JD 3S | |
AC JS 8D 5H 9C 3H 4H 4D TS 2C | |
6H KS KH 9D 7C 2S 6S 8S 2H 3D | |
6H AC JS 7S 3S TD 8H 3H 4H TH | |
9H TC QC KC 5C KS 6H 4H AC 8S | |
TC 7D QH 4S JC TS 6D 6C AC KH | |
QH 7D 7C JH QS QD TH 3H 5D KS | |
3D 5S 8D JS 4C 2C KS 7H 9C 4H | |
5H 8S 4H TD 2C 3S QD QC 3H KC | |
QC JS KD 9C AD 5S 9D 7D 7H TS | |
8C JC KH 7C 7S 6C TS 2C QD TH | |
5S 9D TH 3C 7S QH 8S 9C 2H 5H | |
5D 9H 6H 2S JS KH 3H 7C 2H 5S | |
JD 5D 5S 2C TC 2S 6S 6C 3C 8S | |
4D KH 8H 4H 2D KS 3H 5C 2S 9H | |
3S 2D TD 7H 8S 6H JD KC 9C 8D | |
6S QD JH 7C 9H 5H 8S 8H TH TD | |
QS 7S TD 7D TS JC KD 7C 3C 2C | |
3C JD 8S 4H 2D 2S TD AS 4D AC | |
AH KS 6C 4C 4S 7D 8C 9H 6H AS | |
5S 3C 9S 2C QS KD 4D 4S AC 5D | |
2D TS 2C JS KH QH 5D 8C AS KC | |
KD 3H 6C TH 8S 7S KH 6H 9S AC | |
6H 7S 6C QS AH 2S 2H 4H 5D 5H | |
5H JC QD 2C 2S JD AS QC 6S 7D | |
6C TC AS KD 8H 9D 2C 7D JH 9S | |
2H 4C 6C AH 8S TD 3H TH 7C TS | |
KD 4S TS 6C QH 8D 9D 9C AH 7D | |
6D JS 5C QD QC 9C 5D 8C 2H KD | |
3C QH JH AD 6S AH KC 8S 6D 6H | |
3D 7C 4C 7S 5S 3S 6S 5H JC 3C | |
QH 7C 5H 3C 3S 8C TS 4C KD 9C | |
QD 3S 7S 5H 7H QH JC 7C 8C KD | |
3C KD KH 2S 4C TS AC 6S 2C 7C | |
2C KH 3C 4C 6H 4D 5H 5S 7S QD | |
4D 7C 8S QD TS 9D KS 6H KD 3C | |
QS 4D TS 7S 4C 3H QD 8D 9S TC | |
TS QH AC 6S 3C 9H 9D QS 8S 6H | |
3S 7S 5D 4S JS 2D 6C QH 6S TH | |
4C 4H AS JS 5D 3D TS 9C AC 8S | |
6S 9C 7C 3S 5C QS AD AS 6H 3C | |
9S 8C 7H 3H 6S 7C AS 9H JD KH | |
3D 3H 7S 4D 6C 7C AC 2H 9C TH | |
4H 5S 3H AC TC TH 9C 9H 9S 8D | |
8D 9H 5H 4D 6C 2H QD 6S 5D 3S | |
4C 5C JD QS 4D 3H TH AC QH 8C | |
QC 5S 3C 7H AD 4C KS 4H JD 6D | |
QS AH 3H KS 9H 2S JS JH 5H 2H | |
2H 5S TH 6S TS 3S KS 3C 5H JS | |
2D 9S 7H 3D KC JH 6D 7D JS TD | |
AC JS 8H 2C 8C JH JC 2D TH 7S | |
5D 9S 8H 2H 3D TC AH JC KD 9C | |
9D QD JC 2H 6D KH TS 9S QH TH | |
2C 8D 4S JD 5H 3H TH TC 9C KC | |
AS 3D 9H 7D 4D TH KH 2H 7S 3H | |
4H 7S KS 2S JS TS 8S 2H QD 8D | |
5S 6H JH KS 8H 2S QC AC 6S 3S | |
JC AS AD QS 8H 6C KH 4C 4D QD | |
2S 3D TS TD 9S KS 6S QS 5C 8D | |
3C 6D 4S QC KC JH QD TH KH AD | |
9H AH 4D KS 2S 8D JH JC 7C QS | |
2D 6C TH 3C 8H QD QH 2S 3S KS | |
6H 5D 9S 4C TS TD JS QD 9D JD | |
5H 8H KH 8S KS 7C TD AD 4S KD | |
2C 7C JC 5S AS 6C 7D 8S 5H 9C | |
6S QD 9S TS KH QS 5S QH 3C KC | |
7D 3H 3C KD 5C AS JH 7H 6H JD | |
9D 5C 9H KC 8H KS 4S AD 4D 2S | |
3S JD QD 8D 2S 7C 5S 6S 5H TS | |
6D 9S KC TD 3S 6H QD JD 5C 8D | |
5H 9D TS KD 8D 6H TD QC 4C 7D | |
6D 4S JD 9D AH 9S AS TD 9H QD | |
2D 5S 2H 9C 6H 9S TD QC 7D TC | |
3S 2H KS TS 2C 9C 8S JS 9D 7D | |
3C KC 6D 5D 6C 6H 8S AS 7S QS | |
JH 9S 2H 8D 4C 8H 9H AD TH KH | |
QC AS 2S JS 5C 6H KD 3H 7H 2C | |
QD 8H 2S 8D 3S 6D AH 2C TC 5C | |
JD JS TS 8S 3H 5D TD KC JC 6H | |
6S QS TC 3H 5D AH JC 7C 7D 4H | |
7C 5D 8H 9C 2H 9H JH KH 5S 2C | |
9C 7H 6S TH 3S QC QD 4C AC JD | |
2H 5D 9S 7D KC 3S QS 2D AS KH | |
2S 4S 2H 7D 5C TD TH QH 9S 4D | |
6D 3S TS 6H 4H KS 9D 8H 5S 2D | |
9H KS 4H 3S 5C 5D KH 6H 6S JS | |
KC AS 8C 4C JC KH QC TH QD AH | |
6S KH 9S 2C 5H TC 3C 7H JC 4D | |
JD 4S 6S 5S 8D 7H 7S 4D 4C 2H | |
7H 9H 5D KH 9C 7C TS TC 7S 5H | |
4C 8D QC TS 4S 9H 3D AD JS 7C | |
8C QS 5C 5D 3H JS AH KC 4S 9D | |
TS JD 8S QS TH JH KH 2D QD JS | |
JD QC 5D 6S 9H 3S 2C 8H 9S TS | |
2S 4C AD 7H JC 5C 2D 6D 4H 3D | |
7S JS 2C 4H 8C AD QD 9C 3S TD | |
JD TS 4C 6H 9H 7D QD 6D 3C AS | |
AS 7C 4C 6S 5D 5S 5C JS QC 4S | |
KD 6S 9S 7C 3C 5S 7D JH QD JS | |
4S 7S JH 2C 8S 5D 7H 3D QH AD | |
TD 6H 2H 8D 4H 2D 7C AD KH 5D | |
TS 3S 5H 2C QD AH 2S 5C KH TD | |
KC 4D 8C 5D AS 6C 2H 2S 9H 7C | |
KD JS QC TS QS KH JH 2C 5D AD | |
3S 5H KC 6C 9H 3H 2H AD 7D 7S | |
7S JS JH KD 8S 7D 2S 9H 7C 2H | |
9H 2D 8D QC 6S AD AS 8H 5H 6C | |
2S 7H 6C 6D 7D 8C 5D 9D JC 3C | |
7C 9C 7H JD 2H KD 3S KH AD 4S | |
QH AS 9H 4D JD KS KD TS KH 5H | |
4C 8H 5S 3S 3D 7D TD AD 7S KC | |
JS 8S 5S JC 8H TH 9C 4D 5D KC | |
7C 5S 9C QD 2C QH JS 5H 8D KH | |
TD 2S KS 3D AD KC 7S TC 3C 5D | |
4C 2S AD QS 6C 9S QD TH QH 5C | |
8C AD QS 2D 2S KC JD KS 6C JC | |
8D 4D JS 2H 5D QD 7S 7D QH TS | |
6S 7H 3S 8C 8S 9D QS 8H 6C 9S | |
4S TC 2S 5C QD 4D QS 6D TH 6S | |
3S 5C 9D 6H 8D 4C 7D TC 7C TD | |
AH 6S AS 7H 5S KD 3H 5H AC 4C | |
8D 8S AH KS QS 2C AD 6H 7D 5D | |
6H 9H 9S 2H QS 8S 9C 5D 2D KD | |
TS QC 5S JH 7D 7S TH 9S 9H AC | |
7H 3H 6S KC 4D 6D 5C 4S QD TS | |
TD 2S 7C QD 3H JH 9D 4H 7S 7H | |
KS 3D 4H 5H TC 2S AS 2D 6D 7D | |
8H 3C 7H TD 3H AD KC TH 9C KH | |
TC 4C 2C 9S 9D 9C 5C 2H JD 3C | |
3H AC TS 5D AD 8D 6H QC 6S 8C | |
2S TS 3S JD 7H 8S QH 4C 5S 8D | |
AC 4S 6C 3C KH 3D 7C 2D 8S 2H | |
4H 6C 8S TH 2H 4S 8H 9S 3H 7S | |
7C 4C 9C 2C 5C AS 5D KD 4D QH | |
9H 4H TS AS 7D 8D 5D 9S 8C 2H | |
QC KD AC AD 2H 7S AS 3S 2D 9S | |
2H QC 8H TC 6D QD QS 5D KH 3C | |
TH JD QS 4C 2S 5S AD 7H 3S AS | |
7H JS 3D 6C 3S 6D AS 9S AC QS | |
9C TS AS 8C TC 8S 6H 9D 8D 6C | |
4D JD 9C KC 7C 6D KS 3S 8C AS | |
3H 6S TC 8D TS 3S KC 9S 7C AS | |
8C QC 4H 4S 8S 6C 3S TC AH AC | |
4D 7D 5C AS 2H 6S TS QC AD TC | |
QD QC 8S 4S TH 3D AH TS JH 4H | |
5C 2D 9S 2C 3H 3C 9D QD QH 7D | |
KC 9H 6C KD 7S 3C 4D AS TC 2D | |
3D JS 4D 9D KS 7D TH QC 3H 3C | |
8D 5S 2H 9D 3H 8C 4C 4H 3C TH | |
JC TH 4S 6S JD 2D 4D 6C 3D 4C | |
TS 3S 2D 4H AC 2C 6S 2H JH 6H | |
TD 8S AD TC AH AC JH 9S 6S 7S | |
6C KC 4S JD 8D 9H 5S 7H QH AH | |
KD 8D TS JH 5C 5H 3H AD AS JS | |
2D 4H 3D 6C 8C 7S AD 5D 5C 8S | |
TD 5D 7S 9C 4S 5H 6C 8C 4C 8S | |
JS QH 9C AS 5C QS JC 3D QC 7C | |
JC 9C KH JH QS QC 2C TS 3D AD | |
5D JH AC 5C 9S TS 4C JD 8C KS | |
KC AS 2D KH 9H 2C 5S 4D 3D 6H | |
TH AH 2D 8S JC 3D 8C QH 7S 3S | |
8H QD 4H JC AS KH KS 3C 9S 6D | |
9S QH 7D 9C 4S AC 7H KH 4D KD | |
AH AD TH 6D 9C 9S KD KS QH 4H | |
QD 6H 9C 7C QS 6D 6S 9D 5S JH | |
AH 8D 5H QD 2H JC KS 4H KH 5S | |
5C 2S JS 8D 9C 8C 3D AS KC AH | |
JD 9S 2H QS 8H 5S 8C TH 5C 4C | |
QC QS 8C 2S 2C 3S 9C 4C KS KH | |
2D 5D 8S AH AD TD 2C JS KS 8C | |
TC 5S 5H 8H QC 9H 6H JD 4H 9S | |
3C JH 4H 9H AH 4S 2H 4C 8D AC | |
8S TH 4D 7D 6D QD QS 7S TC 7C | |
KH 6D 2D JD 5H JS QD JH 4H 4S | |
9C 7S JH 4S 3S TS QC 8C TC 4H | |
QH 9D 4D JH QS 3S 2C 7C 6C 2D | |
4H 9S JD 5C 5H AH 9D TS 2D 4C | |
KS JH TS 5D 2D AH JS 7H AS 8D | |
JS AH 8C AD KS 5S 8H 2C 6C TH | |
2H 5D AD AC KS 3D 8H TS 6H QC | |
6D 4H TS 9C 5H JS JH 6S JD 4C | |
JH QH 4H 2C 6D 3C 5D 4C QS KC | |
6H 4H 6C 7H 6S 2S 8S KH QC 8C | |
3H 3D 5D KS 4H TD AD 3S 4D TS | |
5S 7C 8S 7D 2C KS 7S 6C 8C JS | |
5D 2H 3S 7C 5C QD 5H 6D 9C 9H | |
JS 2S KD 9S 8D TD TS AC 8C 9D | |
5H QD 2S AC 8C 9H KS 7C 4S 3C | |
KH AS 3H 8S 9C JS QS 4S AD 4D | |
AS 2S TD AD 4D 9H JC 4C 5H QS | |
5D 7C 4H TC 2D 6C JS 4S KC 3S | |
4C 2C 5D AC 9H 3D JD 8S QS QH | |
2C 8S 6H 3C QH 6D TC KD AC AH | |
QC 6C 3S QS 4S AC 8D 5C AD KH | |
5S 4C AC KH AS QC 2C 5C 8D 9C | |
8H JD 3C KH 8D 5C 9C QD QH 9D | |
7H TS 2C 8C 4S TD JC 9C 5H QH | |
JS 4S 2C 7C TH 6C AS KS 7S JD | |
JH 7C 9H 7H TC 5H 3D 6D 5D 4D | |
2C QD JH 2H 9D 5S 3D TD AD KS | |
JD QH 3S 4D TH 7D 6S QS KS 4H | |
TC KS 5S 8D 8H AD 2S 2D 4C JH | |
5S JH TC 3S 2D QS 9D 4C KD 9S | |
AC KH 3H AS 9D KC 9H QD 6C 6S | |
9H 7S 3D 5C 7D KC TD 8H 4H 6S | |
3C 7H 8H TC QD 4D 7S 6S QH 6C | |
6D AD 4C QD 6C 5D 7D 9D KS TS | |
JH 2H JD 9S 7S TS KH 8D 5D 8H | |
2D 9S 4C 7D 9D 5H QD 6D AC 6S | |
7S 6D JC QD JH 4C 6S QS 2H 7D | |
8C TD JH KD 2H 5C QS 2C JS 7S | |
TC 5H 4H JH QD 3S 5S 5D 8S KH | |
KS KH 7C 2C 5D JH 6S 9C 6D JC | |
5H AH JD 9C JS KC 2H 6H 4D 5S | |
AS 3C TH QC 6H 9C 8S 8C TD 7C | |
KC 2C QD 9C KH 4D 7S 3C TS 9H | |
9C QC 2S TS 8C TD 9S QD 3S 3C | |
4D 9D TH JH AH 6S 2S JD QH JS | |
QD 9H 6C KD 7D 7H 5D 6S 8H AH | |
8H 3C 4S 2H 5H QS QH 7S 4H AC | |
QS 3C 7S 9S 4H 3S AH KS 9D 7C | |
AD 5S 6S 2H 2D 5H TC 4S 3C 8C | |
QH TS 6S 4D JS KS JH AS 8S 6D | |
2C 8S 2S TD 5H AS TC TS 6C KC | |
KC TS 8H 2H 3H 7C 4C 5S TH TD | |
KD AD KH 7H 7S 5D 5H 5S 2D 9C | |
AD 9S 3D 7S 8C QC 7C 9C KD KS | |
3C QC 9S 8C 4D 5C AS QD 6C 2C | |
2H KC 8S JD 7S AC 8D 5C 2S 4D | |
9D QH 3D 2S TC 3S KS 3C 9H TD | |
KD 6S AC 2C 7H 5H 3S 6C 6H 8C | |
QH TC 8S 6S KH TH 4H 5D TS 4D | |
8C JS 4H 6H 2C 2H 7D AC QD 3D | |
QS KC 6S 2D 5S 4H TD 3H JH 4C | |
7S 5H 7H 8H KH 6H QS TH KD 7D | |
5H AD KD 7C KH 5S TD 6D 3C 6C | |
8C 9C 5H JD 7C KC KH 7H 2H 3S | |
7S 4H AD 4D 8S QS TH 3D 7H 5S | |
8D TC KS KD 9S 6D AD JD 5C 2S | |
7H 8H 6C QD 2H 6H 9D TC 9S 7C | |
8D 6D 4C 7C 6C 3C TH KH JS JH | |
5S 3S 8S JS 9H AS AD 8H 7S KD | |
JH 7C 2C KC 5H AS AD 9C 9S JS | |
AD AC 2C 6S QD 7C 3H TH KS KD | |
9D JD 4H 8H 4C KH 7S TS 8C KC | |
3S 5S 2H 7S 6H 7D KS 5C 6D AD | |
5S 8C 9H QS 7H 7S 2H 6C 7D TD | |
QS 5S TD AC 9D KC 3D TC 2D 4D | |
TD 2H 7D JD QD 4C 7H 5D KC 3D | |
4C 3H 8S KD QH 5S QC 9H TC 5H | |
9C QD TH 5H TS 5C 9H AH QH 2C | |
4D 6S 3C AC 6C 3D 2C 2H TD TH | |
AC 9C 5D QC 4D AD 8D 6D 8C KC | |
AD 3C 4H AC 8D 8H 7S 9S TD JC | |
4H 9H QH JS 2D TH TD TC KD KS | |
5S 6S 9S 8D TH AS KH 5H 5C 8S | |
JD 2S 9S 6S 5S 8S 5D 7S 7H 9D | |
5D 8C 4C 9D AD TS 2C 7D KD TC | |
8S QS 4D KC 5C 8D 4S KH JD KD | |
AS 5C AD QH 7D 2H 9S 7H 7C TC | |
2S 8S JD KH 7S 6C 6D AD 5D QC | |
9H 6H 3S 8C 8H AH TC 4H JS TD | |
2C TS 4D 7H 2D QC 9C 5D TH 7C | |
6C 8H QC 5D TS JH 5C 5H 9H 4S | |
2D QC 7H AS JS 8S 2H 4C 4H 8D | |
JS 6S AC KD 3D 3C 4S 7H TH KC | |
QH KH 6S QS 5S 4H 3C QD 3S 3H | |
7H AS KH 8C 4H 9C 5S 3D 6S TS | |
9C 7C 3H 5S QD 2C 3D AD AC 5H | |
JH TD 2D 4C TS 3H KH AD 3S 7S | |
AS 4C 5H 4D 6S KD JC 3C 6H 2D | |
3H 6S 8C 2D TH 4S AH QH AD 5H | |
7C 2S 9H 7H KC 5C 6D 5S 3H JC | |
3C TC 9C 4H QD TD JH 6D 9H 5S | |
7C 6S 5C 5D 6C 4S 7H 9H 6H AH | |
AD 2H 7D KC 2C 4C 2S 9S 7H 3S | |
TH 4C 8S 6S 3S AD KS AS JH TD | |
5C TD 4S 4D AD 6S 5D TC 9C 7D | |
8H 3S 4D 4S 5S 6H 5C AC 3H 3D | |
9H 3C AC 4S QS 8S 9D QH 5H 4D | |
JC 6C 5H TS AC 9C JD 8C 7C QD | |
8S 8H 9C JD 2D QC QH 6H 3C 8D | |
KS JS 2H 6H 5H QH QS 3H 7C 6D | |
TC 3H 4S 7H QC 2H 3S 8C JS KH | |
AH 8H 5S 4C 9H JD 3H 7S JC AC | |
3C 2D 4C 5S 6C 4S QS 3S JD 3D | |
5H 2D TC AH KS 6D 7H AD 8C 6H | |
6C 7S 3C JD 7C 8H KS KH AH 6D | |
AH 7D 3H 8H 8S 7H QS 5H 9D 2D | |
JD AC 4H 7S 8S 9S KS AS 9D QH | |
7S 2C 8S 5S JH QS JC AH KD 4C | |
AH 2S 9H 4H 8D TS TD 6H QH JD | |
4H JC 3H QS 6D 7S 9C 8S 9D 8D | |
5H TD 4S 9S 4C 8C 8D 7H 3H 3D | |
QS KH 3S 2C 2S 3C 7S TD 4S QD | |
7C TD 4D 5S KH AC AS 7H 4C 6C | |
2S 5H 6D JD 9H QS 8S 2C 2H TD | |
2S TS 6H 9H 7S 4H JC 4C 5D 5S | |
2C 5H 7D 4H 3S QH JC JS 6D 8H | |
4C QH 7C QD 3S AD TH 8S 5S TS | |
9H TC 2S TD JC 7D 3S 3D TH QH | |
7D 4C 8S 5C JH 8H 6S 3S KC 3H | |
JC 3H KH TC QH TH 6H 2C AC 5H | |
QS 2H 9D 2C AS 6S 6C 2S 8C 8S | |
9H 7D QC TH 4H KD QS AC 7S 3C | |
4D JH 6S 5S 8H KS 9S QC 3S AS | |
JD 2D 6S 7S TC 9H KC 3H 7D KD | |
2H KH 7C 4D 4S 3H JS QD 7D KC | |
4C JC AS 9D 3C JS 6C 8H QD 4D | |
AH JS 3S 6C 4C 3D JH 6D 9C 9H | |
9H 2D 8C 7H 5S KS 6H 9C 2S TC | |
6C 8C AD 7H 6H 3D KH AS 5D TH | |
KS 8C 3S TS 8S 4D 5S 9S 6C 4H | |
9H 4S 4H 5C 7D KC 2D 2H 9D JH | |
5C JS TC 9D 9H 5H 7S KH JC 6S | |
7C 9H 8H 4D JC KH JD 2H TD TC | |
8H 6C 2H 2C KH 6H 9D QS QH 5H | |
AC 7D 2S 3D QD JC 2D 8D JD JH | |
2H JC 2D 7H 2C 3C 8D KD TD 4H | |
3S 4H 6D 8D TS 3H TD 3D 6H TH | |
JH JC 3S AC QH 9H 7H 8S QC 2C | |
7H TD QS 4S 8S 9C 2S 5D 4D 2H | |
3D TS 3H 2S QC 8H 6H KC JC KS | |
5D JD 7D TC 8C 6C 9S 3D 8D AC | |
8H 6H JH 6C 5D 8D 8S 4H AD 2C | |
9D 4H 2D 2C 3S TS AS TC 3C 5D | |
4D TH 5H KS QS 6C 4S 2H 3D AD | |
5C KC 6H 2C 5S 3C 4D 2D 9H 9S | |
JD 4C 3H TH QH 9H 5S AH 8S AC | |
7D 9S 6S 2H TD 9C 4H 8H QS 4C | |
3C 6H 5D 4H 8C 9C KC 6S QD QS | |
3S 9H KD TC 2D JS 8C 6S 4H 4S | |
2S 4C 8S QS 6H KH 3H TH 8C 5D | |
2C KH 5S 3S 7S 7H 6C 9D QD 8D | |
8H KS AC 2D KH TS 6C JS KC 7H | |
9C KS 5C TD QC AH 6C 5H 9S 7C | |
5D 4D 3H 4H 6S 7C 7S AH QD TD | |
2H 7D QC 6S TC TS AH 7S 9D 3H | |
TH 5H QD 9S KS 7S 7C 6H 8C TD | |
TH 2D 4D QC 5C 7D JD AH 9C 4H | |
4H 3H AH 8D 6H QC QH 9H 2H 2C | |
2D AD 4C TS 6H 7S TH 4H QS TD | |
3C KD 2H 3H QS JD TC QC 5D 8H | |
KS JC QD TH 9S KD 8D 8C 2D 9C | |
3C QD KD 6D 4D 8D AH AD QC 8S | |
8H 3S 9D 2S 3H KS 6H 4C 7C KC | |
TH 9S 5C 3D 7D 6H AC 7S 4D 2C | |
5C 3D JD 4D 2D 6D 5H 9H 4C KH | |
AS 7H TD 6C 2H 3D QD KS 4C 4S | |
JC 3C AC 7C JD JS 8H 9S QC 5D | |
JD 6S 5S 2H AS 8C 7D 5H JH 3D | |
8D TC 5S 9S 8S 3H JC 5H 7S AS | |
5C TD 3D 7D 4H 8D 7H 4D 5D JS | |
QS 9C KS TD 2S 8S 5C 2H 4H AS | |
TH 7S 4H 7D 3H JD KD 5D 2S KC | |
JD 7H 4S 8H 4C JS 6H QH 5S 4H | |
2C QS 8C 5S 3H QC 2S 6C QD AD | |
8C 3D JD TC 4H 2H AD 5S AC 2S | |
5D 2C JS 2D AD 9D 3D 4C 4S JH | |
8D 5H 5D 6H 7S 4D KS 9D TD JD | |
3D 6D 9C 2S AS 7D 5S 5C 8H JD | |
7C 8S 3S 6S 5H JD TC AD 7H 7S | |
2S 9D TS 4D AC 8D 6C QD JD 3H | |
9S KH 2C 3C AC 3D 5H 6H 8D 5D | |
KS 3D 2D 6S AS 4C 2S 7C 7H KH | |
AC 2H 3S JC 5C QH 4D 2D 5H 7S | |
TS AS JD 8C 6H JC 8S 5S 2C 5D | |
7S QH 7H 6C QC 8H 2D 7C JD 2S | |
2C QD 2S 2H JC 9C 5D 2D JD JH | |
7C 5C 9C 8S 7D 6D 8D 6C 9S JH | |
2C AD 6S 5H 3S KS 7S 9D KH 4C | |
7H 6C 2C 5C TH 9D 8D 3S QC AH | |
5S KC 6H TC 5H 8S TH 6D 3C AH | |
9C KD 4H AD TD 9S 4S 7D 6H 5D | |
7H 5C 5H 6D AS 4C KD KH 4H 9D | |
3C 2S 5C 6C JD QS 2H 9D 7D 3H | |
AC 2S 6S 7S JS QD 5C QS 6H AD | |
5H TH QC 7H TC 3S 7C 6D KC 3D | |
4H 3D QC 9S 8H 2C 3S JC KS 5C | |
4S 6S 2C 6H 8S 3S 3D 9H 3H JS | |
4S 8C 4D 2D 8H 9H 7D 9D AH TS | |
9S 2C 9H 4C 8D AS 7D 3D 6D 5S | |
6S 4C 7H 8C 3H 5H JC AH 9D 9C | |
2S 7C 5S JD 8C 3S 3D 4D 7D 6S | |
3C KC 4S 5D 7D 3D JD 7H 3H 4H | |
9C 9H 4H 4D TH 6D QD 8S 9S 7S | |
2H AC 8S 4S AD 8C 2C AH 7D TC | |
TS 9H 3C AD KS TC 3D 8C 8H JD | |
QC 8D 2C 3C 7D 7C JD 9H 9C 6C | |
AH 6S JS JH 5D AS QC 2C JD TD | |
9H KD 2H 5D 2D 3S 7D TC AH TS | |
TD 8H AS 5D AH QC AC 6S TC 5H | |
KS 4S 7H 4D 8D 9C TC 2H 6H 3H | |
3H KD 4S QD QH 3D 8H 8C TD 7S | |
8S JD TC AH JS QS 2D KH KS 4D | |
3C AD JC KD JS KH 4S TH 9H 2C | |
QC 5S JS 9S KS AS 7C QD 2S JD | |
KC 5S QS 3S 2D AC 5D 9H 8H KS | |
6H 9C TC AD 2C 6D 5S JD 6C 7C | |
QS KH TD QD 2C 3H 8S 2S QC AH | |
9D 9H JH TC QH 3C 2S JS 5C 7H | |
6C 3S 3D 2S 4S QD 2D TH 5D 2C | |
2D 6H 6D 2S JC QH AS 7H 4H KH | |
5H 6S KS AD TC TS 7C AC 4S 4H | |
AD 3C 4H QS 8C 9D KS 2H 2D 4D | |
4S 9D 6C 6D 9C AC 8D 3H 7H KD | |
JC AH 6C TS JD 6D AD 3S 5D QD | |
JC JH JD 3S 7S 8S JS QC 3H 4S | |
JD TH 5C 2C AD JS 7H 9S 2H 7S | |
8D 3S JH 4D QC AS JD 2C KC 6H | |
2C AC 5H KD 5S 7H QD JH AH 2D | |
JC QH 8D 8S TC 5H 5C AH 8C 6C | |
3H JS 8S QD JH 3C 4H 6D 5C 3S | |
6D 4S 4C AH 5H 5S 3H JD 7C 8D | |
8H AH 2H 3H JS 3C 7D QC 4H KD | |
6S 2H KD 5H 8H 2D 3C 8S 7S QD | |
2S 7S KC QC AH TC QS 6D 4C 8D | |
5S 9H 2C 3S QD 7S 6C 2H 7C 9D | |
3C 6C 5C 5S JD JC KS 3S 5D TS | |
7C KS 6S 5S 2S 2D TC 2H 5H QS | |
AS 7H 6S TS 5H 9S 9D 3C KD 2H | |
4S JS QS 3S 4H 7C 2S AC 6S 9D | |
8C JH 2H 5H 7C 5D QH QS KH QC | |
3S TD 3H 7C KC 8D 5H 8S KH 8C | |
4H KH JD TS 3C 7H AS QC JS 5S | |
AH 9D 2C 8D 4D 2D 6H 6C KC 6S | |
2S 6H 9D 3S 7H 4D KH 8H KD 3D | |
9C TC AC JH KH 4D JD 5H TD 3S | |
7S 4H 9D AS 4C 7D QS 9S 2S KH | |
3S 8D 8S KS 8C JC 5C KH 2H 5D | |
8S QH 2C 4D KC JS QC 9D AC 6H | |
8S 8C 7C JS JD 6S 4C 9C AC 4S | |
QH 5D 2C 7D JC 8S 2D JS JH 4C | |
JS 4C 7S TS JH KC KH 5H QD 4S | |
QD 8C 8D 2D 6S TD 9D AC QH 5S | |
QH QC JS 3D 3C 5C 4H KH 8S 7H | |
7C 2C 5S JC 8S 3H QC 5D 2H KC | |
5S 8D KD 6H 4H QD QH 6D AH 3D | |
7S KS 6C 2S 4D AC QS 5H TS JD | |
7C 2D TC 5D QS AC JS QC 6C KC | |
2C KS 4D 3H TS 8S AD 4H 7S 9S | |
QD 9H QH 5H 4H 4D KH 3S JC AD | |
4D AC KC 8D 6D 4C 2D KH 2C JD | |
2C 9H 2D AH 3H 6D 9C 7D TC KS | |
8C 3H KD 7C 5C 2S 4S 5H AS AH | |
TH JD 4H KD 3H TC 5C 3S AC KH | |
6D 7H AH 7S QC 6H 2D TD JD AS | |
JH 5D 7H TC 9S 7D JC AS 5S KH | |
2H 8C AD TH 6H QD KD 9H 6S 6C | |
QH KC 9D 4D 3S JS JH 4H 2C 9H | |
TC 7H KH 4H JC 7D 9S 3H QS 7S | |
AD 7D JH 6C 7H 4H 3S 3H 4D QH | |
JD 2H 5C AS 6C QC 4D 3C TC JH | |
AC JD 3H 6H 4C JC AD 7D 7H 9H | |
4H TC TS 2C 8C 6S KS 2H JD 9S | |
4C 3H QS QC 9S 9H 6D KC 9D 9C | |
5C AD 8C 2C QH TH QD JC 8D 8H | |
QC 2C 2S QD 9C 4D 3S 8D JH QS | |
9D 3S 2C 7S 7C JC TD 3C TC 9H | |
3C TS 8H 5C 4C 2C 6S 8D 7C 4H | |
KS 7H 2H TC 4H 2C 3S AS AH QS | |
8C 2D 2H 2C 4S 4C 6S 7D 5S 3S | |
TH QC 5D TD 3C QS KD KC KS AS | |
4D AH KD 9H KS 5C 4C 6H JC 7S | |
KC 4H 5C QS TC 2H JC 9S AH QH | |
4S 9H 3H 5H 3C QD 2H QC JH 8H | |
5D AS 7H 2C 3D JH 6H 4C 6S 7D | |
9C JD 9H AH JS 8S QH 3H KS 8H | |
3S AC QC TS 4D AD 3D AH 8S 9H | |
7H 3H QS 9C 9S 5H JH JS AH AC | |
8D 3C JD 2H AC 9C 7H 5S 4D 8H | |
7C JH 9H 6C JS 9S 7H 8C 9D 4H | |
2D AS 9S 6H 4D JS JH 9H AD QD | |
6H 7S JH KH AH 7H TD 5S 6S 2C | |
8H JH 6S 5H 5S 9D TC 4C QC 9S | |
7D 2C KD 3H 5H AS QD 7H JS 4D | |
TS QH 6C 8H TH 5H 3C 3H 9C 9D | |
AD KH JS 5D 3H AS AC 9S 5C KC | |
2C KH 8C JC QS 6D AH 2D KC TC | |
9D 3H 2S 7C 4D 6D KH KS 8D 7D | |
9H 2S TC JH AC QC 3H 5S 3S 8H | |
3S AS KD 8H 4C 3H 7C JH QH TS | |
7S 6D 7H 9D JH 4C 3D 3S 6C AS | |
4S 2H 2C 4C 8S 5H KC 8C QC QD | |
3H 3S 6C QS QC 2D 6S 5D 2C 9D | |
2H 8D JH 2S 3H 2D 6C 5C 7S AD | |
9H JS 5D QH 8S TS 2H 7S 6S AD | |
6D QC 9S 7H 5H 5C 7D KC JD 4H | |
QC 5S 9H 9C 4D 6S KS 2S 4C 7C | |
9H 7C 4H 8D 3S 6H 5C 8H JS 7S | |
2D 6H JS TD 4H 4D JC TH 5H KC | |
AC 7C 8D TH 3H 9S 2D 4C KC 4D | |
KD QS 9C 7S 3D KS AD TS 4C 4H | |
QH 9C 8H 2S 7D KS 7H 5D KD 4C | |
9C 2S 2H JC 6S 6C TC QC JH 5C | |
7S AC 8H KC 8S 6H QS JC 3D 6S | |
JS 2D JH 8C 4S 6H 8H 6D 5D AD | |
6H 7D 2S 4H 9H 7C AS AC 8H 5S | |
3C JS 4S 6D 5H 2S QH 6S 9C 2C | |
3D 5S 6S 9S 4C QS 8D QD 8S TC | |
9C 3D AH 9H 5S 2C 7D AD JC 3S | |
7H TC AS 3C 6S 6D 7S KH KC 9H | |
3S TC 8H 6S 5H JH 8C 7D AC 2S | |
QD 9D 9C 3S JC 8C KS 8H 5D 4D | |
JS AH JD 6D 9D 8C 9H 9S 8H 3H | |
2D 6S 4C 4D 8S AD 4S TC AH 9H | |
TS AC QC TH KC 6D 4H 7S 8C 2H | |
3C QD JS 9D 5S JC AH 2H TS 9H | |
3H 4D QH 5D 9C 5H 7D 4S JC 3S | |
8S TH 3H 7C 2H JD JS TS AC 8D | |
9C 2H TD KC JD 2S 8C 5S AD 2C | |
3D KD 7C 5H 4D QH QD TC 6H 7D | |
7H 2C KC 5S KD 6H AH QC 7S QH | |
6H 5C AC 5H 2C 9C 2D 7C TD 2S | |
4D 9D AH 3D 7C JD 4H 8C 4C KS | |
TH 3C JS QH 8H 4C AS 3D QS QC | |
4D 7S 5H JH 6D 7D 6H JS KH 3C | |
QD 8S 7D 2H 2C 7C JC 2S 5H 8C | |
QH 8S 9D TC 2H AD 7C 8D QD 6S | |
3S 7C AD 9H 2H 9S JD TS 4C 2D | |
3S AS 4H QC 2C 8H 8S 7S TD TC | |
JH TH TD 3S 4D 4H 5S 5D QS 2C | |
8C QD QH TC 6D 4S 9S 9D 4H QC | |
8C JS 9D 6H JD 3H AD 6S TD QC | |
KC 8S 3D 7C TD 7D 8D 9H 4S 3S | |
6C 4S 3D 9D KD TC KC KS AC 5S | |
7C 6S QH 3D JS KD 6H 6D 2D 8C | |
JD 2S 5S 4H 8S AC 2D 6S TS 5C | |
5H 8C 5S 3C 4S 3D 7C 8D AS 3H | |
AS TS 7C 3H AD 7D JC QS 6C 6H | |
3S 9S 4C AC QH 5H 5D 9H TS 4H | |
6C 5C 7H 7S TD AD JD 5S 2H 2S | |
7D 6C KC 3S JD 8D 8S TS QS KH | |
8S QS 8D 6C TH AC AH 2C 8H 9S | |
7H TD KH QH 8S 3D 4D AH JD AS | |
TS 3D 2H JC 2S JH KH 6C QC JS | |
KC TH 2D 6H 7S 2S TC 8C 9D QS | |
3C 9D 6S KH 8H 6D 5D TH 2C 2H | |
6H TC 7D AD 4D 8S TS 9H TD 7S | |
JS 6D JD JC 2H AC 6C 3D KH 8D | |
KH JD 9S 5D 4H 4C 3H 7S QS 5C | |
4H JD 5D 3S 3C 4D KH QH QS 7S | |
JD TS 8S QD AH 4C 6H 3S 5S 2C | |
QS 3D JD AS 8D TH 7C 6S QC KS | |
7S 2H 8C QC 7H AC 6D 2D TH KH | |
5S 6C 7H KH 7D AH 8C 5C 7S 3D | |
3C KD AD 7D 6C 4D KS 2D 8C 4S | |
7C 8D 5S 2D 2S AH AD 2C 9D TD | |
3C AD 4S KS JH 7C 5C 8C 9C TH | |
AS TD 4D 7C JD 8C QH 3C 5H 9S | |
3H 9C 8S 9S 6S QD KS AH 5H JH | |
QC 9C 5S 4H 2H TD 7D AS 8C 9D | |
8C 2C 9D KD TC 7S 3D KH QC 3C | |
4D AS 4C QS 5S 9D 6S JD QH KS | |
6D AH 6C 4C 5H TS 9H 7D 3D 5S | |
QS JD 7C 8D 9C AC 3S 6S 6C KH | |
8H JH 5D 9S 6D AS 6S 3S QC 7H | |
QD AD 5C JH 2H AH 4H AS KC 2C | |
JH 9C 2C 6H 2D JS 5D 9H KC 6D | |
7D 9D KD TH 3H AS 6S QC 6H AD | |
JD 4H 7D KC 3H JS 3C TH 3D QS | |
4C 3H 8C QD 5H 6H AS 8H AD JD | |
TH 8S KD 5D QC 7D JS 5S 5H TS | |
7D KC 9D QS 3H 3C 6D TS 7S AH | |
7C 4H 7H AH QC AC 4D 5D 6D TH | |
3C 4H 2S KD 8H 5H JH TC 6C JD | |
4S 8C 3D 4H JS TD 7S JH QS KD | |
7C QC KD 4D 7H 6S AD TD TC KH | |
5H 9H KC 3H 4D 3D AD 6S QD 6H | |
TH 7C 6H TS QH 5S 2C KC TD 6S | |
7C 4D 5S JD JH 7D AC KD KH 4H | |
7D 6C 8D 8H 5C JH 8S QD TH JD | |
8D 7D 6C 7C 9D KD AS 5C QH JH | |
9S 2C 8C 3C 4C KS JH 2D 8D 4H | |
7S 6C JH KH 8H 3H 9D 2D AH 6D | |
4D TC 9C 8D 7H TD KS TH KD 3C | |
JD 9H 8D QD AS KD 9D 2C 2S 9C | |
8D 3H 5C 7H KS 5H QH 2D 8C 9H | |
2D TH 6D QD 6C KC 3H 3S AD 4C | |
4H 3H JS 9D 3C TC 5H QH QC JC | |
3D 5C 6H 3S 3C JC 5S 7S 2S QH | |
AC 5C 8C 4D 5D 4H 2S QD 3C 3H | |
2C TD AH 9C KD JS 6S QD 4C QC | |
QS 8C 3S 4H TC JS 3H 7C JC AD | |
5H 4D 9C KS JC TD 9S TS 8S 9H | |
QD TS 7D AS AC 2C TD 6H 8H AH | |
6S AD 8C 4S 9H 8D 9D KH 8S 3C | |
QS 4D 2D 7S KH JS JC AD 4C 3C | |
QS 9S 7H KC TD TH 5H JS AC JH | |
6D AC 2S QS 7C AS KS 6S KH 5S | |
6D 8H KH 3C QS 2H 5C 9C 9D 6C | |
JS 2C 4C 6H 7D JC AC QD TD 3H | |
4H QC 8H JD 4C KD KS 5C KC 7S | |
6D 2D 3H 2S QD 5S 7H AS TH 6S | |
AS 6D 8D 2C 8S TD 8H QD JC AH | |
9C 9H 2D TD QH 2H 5C TC 3D 8H | |
KC 8S 3D KH 2S TS TC 6S 4D JH | |
9H 9D QS AC KC 6H 5D 4D 8D AH | |
9S 5C QS 4H 7C 7D 2H 8S AD JS | |
3D AC 9S AS 2C 2D 2H 3H JC KH | |
7H QH KH JD TC KS 5S 8H 4C 8D | |
2H 7H 3S 2S 5H QS 3C AS 9H KD | |
AD 3D JD 6H 5S 9C 6D AC 9S 3S | |
3D 5D 9C 2D AC 4S 2S AD 6C 6S | |
QC 4C 2D 3H 6S KC QH QD 2H JH | |
QC 3C 8S 4D 9S 2H 5C 8H QS QD | |
6D KD 6S 7H 3S KH 2H 5C JC 6C | |
3S 9S TC 6S 8H 2D AD 7S 8S TS | |
3C 6H 9C 3H 5C JC 8H QH TD QD | |
3C JS QD 5D TD 2C KH 9H TH AS | |
9S TC JD 3D 5C 5H AD QH 9H KC | |
TC 7H 4H 8H 3H TD 6S AC 7C 2S | |
QS 9D 5D 3C JC KS 4D 6C JH 2S | |
9S 6S 3C 7H TS 4C KD 6D 3D 9C | |
2D 9H AH AC 7H 2S JH 3S 7C QC | |
QD 9H 3C 2H AC AS 8S KD 8C KH | |
2D 7S TD TH 6D JD 8D 4D 2H 5S | |
8S QH KD JD QS JH 4D KC 5H 3S | |
3C KH QC 6D 8H 3S AH 7D TD 2D | |
5S 9H QH 4S 6S 6C 6D TS TH 7S | |
6C 4C 6D QS JS 9C TS 3H 8D 8S | |
JS 5C 7S AS 2C AH 2H AD 5S TC | |
KD 6C 9C 9D TS 2S JC 4H 2C QD | |
QS 9H TC 3H KC KS 4H 3C AD TH | |
KH 9C 2H KD 9D TC 7S KC JH 2D | |
7C 3S KC AS 8C 5D 9C 9S QH 3H | |
2D 8C TD 4C 2H QC 5D TC 2C 7D | |
KS 4D 6C QH TD KH 5D 7C AD 8D | |
2S 9S 8S 4C 8C 3D 6H QD 7C 7H | |
6C 8S QH 5H TS 5C 3C 4S 2S 2H | |
8S 6S 2H JC 3S 3H 9D 8C 2S 7H | |
QC 2C 8H 9C AC JD 4C 4H 6S 3S | |
3H 3S 7D 4C 9S 5H 8H JC 3D TC | |
QH 2S 2D 9S KD QD 9H AD 6D 9C | |
8D 2D KS 9S JC 4C JD KC 4S TH | |
KH TS 6D 4D 5C KD 5H AS 9H AD | |
QD JS 7C 6D 5D 5C TH 5H QH QS | |
9D QH KH 5H JH 4C 4D TC TH 6C | |
KH AS TS 9D KD 9C 7S 4D 8H 5S | |
KH AS 2S 7D 9D 4C TS TH AH 7C | |
KS 4D AC 8S 9S 8D TH QH 9D 5C | |
5D 5C 8C QS TC 4C 3D 3S 2C 8D | |
9D KS 2D 3C KC 4S 8C KH 6C JC | |
8H AH 6H 7D 7S QD 3C 4C 6C KC | |
3H 2C QH 8H AS 7D 4C 8C 4H KC | |
QD 5S 4H 2C TD AH JH QH 4C 8S | |
3H QS 5S JS 8H 2S 9H 9C 3S 2C | |
6H TS 7S JC QD AC TD KC 5S 3H | |
QH AS QS 7D JC KC 2C 4C 5C 5S | |
QH 3D AS JS 4H 8D 7H JC 2S 9C | |
5D 4D 2S 4S 9D 9C 2D QS 8H 7H | |
6D 7H 3H JS TS AC 2D JH 7C 8S | |
JH 5H KC 3C TC 5S 9H 4C 8H 9D | |
8S KC 5H 9H AD KS 9D KH 8D AH | |
JC 2H 9H KS 6S 3H QC 5H AH 9C | |
5C KH 5S AD 6C JC 9H QC 9C TD | |
5S 5D JC QH 2D KS 8H QS 2H TS | |
JH 5H 5S AH 7H 3C 8S AS TD KH | |
6H 3D JD 2C 4C KC 7S AH 6C JH | |
4C KS 9D AD 7S KC 7D 8H 3S 9C | |
7H 5C 5H 3C 8H QC 3D KH 6D JC | |
2D 4H 5D 7D QC AD AH 9H QH 8H | |
KD 8C JS 9D 3S 3C 2H 5D 6D 2S | |
8S 6S TS 3C 6H 8D 5S 3H TD 6C | |
KS 3D JH 9C 7C 9S QS 5S 4H 6H | |
7S 6S TH 4S KC KD 3S JC JH KS | |
7C 3C 2S 6D QH 2C 7S 5H 8H AH | |
KC 8D QD 6D KH 5C 7H 9D 3D 9C | |
6H 2D 8S JS 9S 2S 6D KC 7C TC | |
KD 9C JH 7H KC 8S 2S 7S 3D 6H | |
4H 9H 2D 4C 8H 7H 5S 8S 2H 8D | |
AD 7C 3C 7S 5S 4D 9H 3D JC KH | |
5D AS 7D 6D 9C JC 4C QH QS KH | |
KD JD 7D 3D QS QC 8S 6D JS QD | |
6S 8C 5S QH TH 9H AS AC 2C JD | |
QC KS QH 7S 3C 4C 5C KC 5D AH | |
6C 4H 9D AH 2C 3H KD 3D TS 5C | |
TD 8S QS AS JS 3H KD AC 4H KS | |
7D 5D TS 9H 4H 4C 9C 2H 8C QC | |
2C 7D 9H 4D KS 4C QH AD KD JS | |
QD AD AH KH 9D JS 9H JC KD JD | |
8S 3C 4S TS 7S 4D 5C 2S 6H 7C | |
JS 7S 5C KD 6D QH 8S TD 2H 6S | |
QH 6C TC 6H TD 4C 9D 2H QC 8H | |
3D TS 4D 2H 6H 6S 2C 7H 8S 6C | |
9H 9D JD JH 3S AH 2C 6S 3H 8S | |
2C QS 8C 5S 3H 2S 7D 3C AD 4S | |
5C QC QH AS TS 4S 6S 4C 5H JS | |
JH 5C TD 4C 6H JS KD KH QS 4H | |
TC KH JC 4D 9H 9D 8D KC 3C 8H | |
2H TC 8S AD 9S 4H TS 7H 2C 5C | |
4H 2S 6C 5S KS AH 9C 7C 8H KD | |
TS QH TD QS 3C JH AH 2C 8D 7D | |
5D KC 3H 5S AC 4S 7H QS 4C 2H | |
3D 7D QC KH JH 6D 6C TD TH KD | |
5S 8D TH 6C 9D 7D KH 8C 9S 6D | |
JD QS 7S QC 2S QH JC 4S KS 8D | |
7S 5S 9S JD KD 9C JC AD 2D 7C | |
4S 5H AH JH 9C 5D TD 7C 2D 6S | |
KC 6C 7H 6S 9C QD 5S 4H KS TD | |
6S 8D KS 2D TH TD 9H JD TS 3S | |
KH JS 4H 5D 9D TC TD QC JD TS | |
QS QD AC AD 4C 6S 2D AS 3H KC | |
4C 7C 3C TD QS 9C KC AS 8D AD | |
KC 7H QC 6D 8H 6S 5S AH 7S 8C | |
3S AD 9H JC 6D JD AS KH 6S JH | |
AD 3D TS KS 7H JH 2D JS QD AC | |
9C JD 7C 6D TC 6H 6C JC 3D 3S | |
QC KC 3S JC KD 2C 8D AH QS TS | |
AS KD 3D JD 8H 7C 8C 5C QD 6C |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func (p *PrimesVec) PrimeFactorsCount(num uint32) uint32 { | |
result := uint32(0) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
if num%prime==0 { | |
for ; num%prime==0 ; { | |
num /= prime | |
} | |
result ++ | |
} | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func (p *PrimesVec) PrimeFactorsCount(num uint32) uint32 { | |
result := uint32(0) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
if num%prime==0 { | |
for ; num%prime==0 ; { | |
num /= prime | |
} | |
result ++ | |
} | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func (p *PrimesVec) PrimeFactorsCount(num uint32) uint32 { | |
result := uint32(0) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
if num%prime==0 { | |
for ; num%prime==0 ; { | |
num /= prime | |
} | |
result ++ | |
} | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func (p *PrimesVec) PrimeFactorsCount(num uint32) uint32 { | |
result := uint32(0) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
if num%prime==0 { | |
for ; num%prime==0 ; { | |
num /= prime | |
} | |
result ++ | |
} | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func (p *PrimesVec) PrimeFactorsCount(num uint32) uint32 { | |
result := uint32(0) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
if num%prime==0 { | |
for ; num%prime==0 ; { | |
num /= prime | |
} | |
result ++ | |
} | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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 primesvec | |
const bits_per_elem = 32 // sizeof(uint32)*8 | |
const shift = 5 // 2^5 == 32 | |
const mask = bits_per_elem - 1 | |
type PrimesVec struct { | |
max uint32 | |
data []uint32 | |
} | |
func Create(max uint32) *PrimesVec { | |
result := PrimesVec{max: max} | |
result.data = make([]uint32, 1+max/bits_per_elem) | |
return &result | |
} | |
func (p *PrimesVec) Set(i uint32) { | |
p.data[i >> shift] |= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Clear(i uint32) { | |
p.data[i >> shift] &^= (1 << (i & mask)) | |
} | |
func (p *PrimesVec) Test(i uint32) bool { | |
return (p.data[i >> shift] & (1 << (i & mask))) != 0 | |
} | |
func (p *PrimesVec) Sieve() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i<p.max; i++ { | |
if p.Test(i) { | |
for k:=uint32(2*i); k<p.max; k+=i { | |
p.Clear(k) | |
} | |
} | |
} | |
} | |
func (p *PrimesVec) SieveE() { | |
for i:=uint32(2); i<p.max; i++ { | |
p.Set(i) | |
} | |
for i:=uint32(2); i!=0; i=p.Next(i) { | |
for k:=p.max/i; k>=i; k-- { | |
p.Clear(i*k) | |
} | |
} | |
} | |
func (p *PrimesVec) Next(i uint32) uint32 { | |
for k:=i+1; k<=p.max; k++ { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) Prev(i uint32) uint32 { | |
for k:=i-1; k>1; k-- { | |
if p.Test(k) { | |
return k | |
} | |
} | |
return 0 | |
} | |
func (p *PrimesVec) IsPrime(i int) bool { | |
if i<=1 || uint32(i)>p.max { | |
return false | |
} | |
return p.Test(uint32(i)) | |
} | |
func (p *PrimesVec) FactorsCount(num uint32) uint32 { | |
result := uint32(1) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
p_power := 0 | |
for ; num%prime==0 ; { | |
num /= prime | |
p_power += 1 | |
} | |
result *= uint32(p_power +1) | |
} | |
return result | |
} | |
func (p *PrimesVec) PrimeFactorsCount(num uint32) uint32 { | |
result := uint32(0) | |
for prime := uint32(2); num!=1 ; prime = p.Next(prime) { | |
if prime == 0 { | |
result = 0 | |
break | |
} | |
if num%prime==0 { | |
for ; num%prime==0 ; { | |
num /= prime | |
} | |
result ++ | |
} | |
} | |
return result | |
} | |
func IsPrime(n int) bool { | |
if n<=1 { | |
return false | |
} | |
for p:=2; p*p<=n; p++ { | |
if n % p == 0 { | |
return false | |
} | |
} | |
return true | |
} |
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
"A","ABILITY","ABLE","ABOUT","ABOVE","ABSENCE","ABSOLUTELY","ACADEMIC","ACCEPT","ACCESS","ACCIDENT","ACCOMPANY","ACCORDING","ACCOUNT","ACHIEVE","ACHIEVEMENT","ACID","ACQUIRE","ACROSS","ACT","ACTION","ACTIVE","ACTIVITY","ACTUAL","ACTUALLY","ADD","ADDITION","ADDITIONAL","ADDRESS","ADMINISTRATION","ADMIT","ADOPT","ADULT","ADVANCE","ADVANTAGE","ADVICE","ADVISE","AFFAIR","AFFECT","AFFORD","AFRAID","AFTER","AFTERNOON","AFTERWARDS","AGAIN","AGAINST","AGE","AGENCY","AGENT","AGO","AGREE","AGREEMENT","AHEAD","AID","AIM","AIR","AIRCRAFT","ALL","ALLOW","ALMOST","ALONE","ALONG","ALREADY","ALRIGHT","ALSO","ALTERNATIVE","ALTHOUGH","ALWAYS","AMONG","AMONGST","AMOUNT","AN","ANALYSIS","ANCIENT","AND","ANIMAL","ANNOUNCE","ANNUAL","ANOTHER","ANSWER","ANY","ANYBODY","ANYONE","ANYTHING","ANYWAY","APART","APPARENT","APPARENTLY","APPEAL","APPEAR","APPEARANCE","APPLICATION","APPLY","APPOINT","APPOINTMENT","APPROACH","APPROPRIATE","APPROVE","AREA","ARGUE","ARGUMENT","ARISE","ARM","ARMY","AROUND","ARRANGE","ARRANGEMENT","ARRIVE","ART","ARTICLE","ARTIST","AS","ASK","ASPECT","ASSEMBLY","ASSESS","ASSESSMENT","ASSET","ASSOCIATE","ASSOCIATION","ASSUME","ASSUMPTION","AT","ATMOSPHERE","ATTACH","ATTACK","ATTEMPT","ATTEND","ATTENTION","ATTITUDE","ATTRACT","ATTRACTIVE","AUDIENCE","AUTHOR","AUTHORITY","AVAILABLE","AVERAGE","AVOID","AWARD","AWARE","AWAY","AYE","BABY","BACK","BACKGROUND","BAD","BAG","BALANCE","BALL","BAND","BANK","BAR","BASE","BASIC","BASIS","BATTLE","BE","BEAR","BEAT","BEAUTIFUL","BECAUSE","BECOME","BED","BEDROOM","BEFORE","BEGIN","BEGINNING","BEHAVIOUR","BEHIND","BELIEF","BELIEVE","BELONG","BELOW","BENEATH","BENEFIT","BESIDE","BEST","BETTER","BETWEEN","BEYOND","BIG","BILL","BIND","BIRD","BIRTH","BIT","BLACK","BLOCK","BLOOD","BLOODY","BLOW","BLUE","BOARD","BOAT","BODY","BONE","BOOK","BORDER","BOTH","BOTTLE","BOTTOM","BOX","BOY","BRAIN","BRANCH","BREAK","BREATH","BRIDGE","BRIEF","BRIGHT","BRING","BROAD","BROTHER","BUDGET","BUILD","BUILDING","BURN","BUS","BUSINESS","BUSY","BUT","BUY","BY","CABINET","CALL","CAMPAIGN","CAN","CANDIDATE","CAPABLE","CAPACITY","CAPITAL","CAR","CARD","CARE","CAREER","CAREFUL","CAREFULLY","CARRY","CASE","CASH","CAT","CATCH","CATEGORY","CAUSE","CELL","CENTRAL","CENTRE","CENTURY","CERTAIN","CERTAINLY","CHAIN","CHAIR","CHAIRMAN","CHALLENGE","CHANCE","CHANGE","CHANNEL","CHAPTER","CHARACTER","CHARACTERISTIC","CHARGE","CHEAP","CHECK","CHEMICAL","CHIEF","CHILD","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUMSTANCE","CITIZEN","CITY","CIVIL","CLAIM","CLASS","CLEAN","CLEAR","CLEARLY","CLIENT","CLIMB","CLOSE","CLOSELY","CLOTHES","CLUB","COAL","CODE","COFFEE","COLD","COLLEAGUE","COLLECT","COLLECTION","COLLEGE","COLOUR","COMBINATION","COMBINE","COME","COMMENT","COMMERCIAL","COMMISSION","COMMIT","COMMITMENT","COMMITTEE","COMMON","COMMUNICATION","COMMUNITY","COMPANY","COMPARE","COMPARISON","COMPETITION","COMPLETE","COMPLETELY","COMPLEX","COMPONENT","COMPUTER","CONCENTRATE","CONCENTRATION","CONCEPT","CONCERN","CONCERNED","CONCLUDE","CONCLUSION","CONDITION","CONDUCT","CONFERENCE","CONFIDENCE","CONFIRM","CONFLICT","CONGRESS","CONNECT","CONNECTION","CONSEQUENCE","CONSERVATIVE","CONSIDER","CONSIDERABLE","CONSIDERATION","CONSIST","CONSTANT","CONSTRUCTION","CONSUMER","CONTACT","CONTAIN","CONTENT","CONTEXT","CONTINUE","CONTRACT","CONTRAST","CONTRIBUTE","CONTRIBUTION","CONTROL","CONVENTION","CONVERSATION","COPY","CORNER","CORPORATE","CORRECT","COS","COST","COULD","COUNCIL","COUNT","COUNTRY","COUNTY","COUPLE","COURSE","COURT","COVER","CREATE","CREATION","CREDIT","CRIME","CRIMINAL","CRISIS","CRITERION","CRITICAL","CRITICISM","CROSS","CROWD","CRY","CULTURAL","CULTURE","CUP","CURRENT","CURRENTLY","CURRICULUM","CUSTOMER","CUT","DAMAGE","DANGER","DANGEROUS","DARK","DATA","DATE","DAUGHTER","DAY","DEAD","DEAL","DEATH","DEBATE","DEBT","DECADE","DECIDE","DECISION","DECLARE","DEEP","DEFENCE","DEFENDANT","DEFINE","DEFINITION","DEGREE","DELIVER","DEMAND","DEMOCRATIC","DEMONSTRATE","DENY","DEPARTMENT","DEPEND","DEPUTY","DERIVE","DESCRIBE","DESCRIPTION","DESIGN","DESIRE","DESK","DESPITE","DESTROY","DETAIL","DETAILED","DETERMINE","DEVELOP","DEVELOPMENT","DEVICE","DIE","DIFFERENCE","DIFFERENT","DIFFICULT","DIFFICULTY","DINNER","DIRECT","DIRECTION","DIRECTLY","DIRECTOR","DISAPPEAR","DISCIPLINE","DISCOVER","DISCUSS","DISCUSSION","DISEASE","DISPLAY","DISTANCE","DISTINCTION","DISTRIBUTION","DISTRICT","DIVIDE","DIVISION","DO","DOCTOR","DOCUMENT","DOG","DOMESTIC","DOOR","DOUBLE","DOUBT","DOWN","DRAW","DRAWING","DREAM","DRESS","DRINK","DRIVE","DRIVER","DROP","DRUG","DRY","DUE","DURING","DUTY","EACH","EAR","EARLY","EARN","EARTH","EASILY","EAST","EASY","EAT","ECONOMIC","ECONOMY","EDGE","EDITOR","EDUCATION","EDUCATIONAL","EFFECT","EFFECTIVE","EFFECTIVELY","EFFORT","EGG","EITHER","ELDERLY","ELECTION","ELEMENT","ELSE","ELSEWHERE","EMERGE","EMPHASIS","EMPLOY","EMPLOYEE","EMPLOYER","EMPLOYMENT","EMPTY","ENABLE","ENCOURAGE","END","ENEMY","ENERGY","ENGINE","ENGINEERING","ENJOY","ENOUGH","ENSURE","ENTER","ENTERPRISE","ENTIRE","ENTIRELY","ENTITLE","ENTRY","ENVIRONMENT","ENVIRONMENTAL","EQUAL","EQUALLY","EQUIPMENT","ERROR","ESCAPE","ESPECIALLY","ESSENTIAL","ESTABLISH","ESTABLISHMENT","ESTATE","ESTIMATE","EVEN","EVENING","EVENT","EVENTUALLY","EVER","EVERY","EVERYBODY","EVERYONE","EVERYTHING","EVIDENCE","EXACTLY","EXAMINATION","EXAMINE","EXAMPLE","EXCELLENT","EXCEPT","EXCHANGE","EXECUTIVE","EXERCISE","EXHIBITION","EXIST","EXISTENCE","EXISTING","EXPECT","EXPECTATION","EXPENDITURE","EXPENSE","EXPENSIVE","EXPERIENCE","EXPERIMENT","EXPERT","EXPLAIN","EXPLANATION","EXPLORE","EXPRESS","EXPRESSION","EXTEND","EXTENT","EXTERNAL","EXTRA","EXTREMELY","EYE","FACE","FACILITY","FACT","FACTOR","FACTORY","FAIL","FAILURE","FAIR","FAIRLY","FAITH","FALL","FAMILIAR","FAMILY","FAMOUS","FAR","FARM","FARMER","FASHION","FAST","FATHER","FAVOUR","FEAR","FEATURE","FEE","FEEL","FEELING","FEMALE","FEW","FIELD","FIGHT","FIGURE","FILE","FILL","FILM","FINAL","FINALLY","FINANCE","FINANCIAL","FIND","FINDING","FINE","FINGER","FINISH","FIRE","FIRM","FIRST","FISH","FIT","FIX","FLAT","FLIGHT","FLOOR","FLOW","FLOWER","FLY","FOCUS","FOLLOW","FOLLOWING","FOOD","FOOT","FOOTBALL","FOR","FORCE","FOREIGN","FOREST","FORGET","FORM","FORMAL","FORMER","FORWARD","FOUNDATION","FREE","FREEDOM","FREQUENTLY","FRESH","FRIEND","FROM","FRONT","FRUIT","FUEL","FULL","FULLY","FUNCTION","FUND","FUNNY","FURTHER","FUTURE","GAIN","GAME","GARDEN","GAS","GATE","GATHER","GENERAL","GENERALLY","GENERATE","GENERATION","GENTLEMAN","GET","GIRL","GIVE","GLASS","GO","GOAL","GOD","GOLD","GOOD","GOVERNMENT","GRANT","GREAT","GREEN","GREY","GROUND","GROUP","GROW","GROWING","GROWTH","GUEST","GUIDE","GUN","HAIR","HALF","HALL","HAND","HANDLE","HANG","HAPPEN","HAPPY","HARD","HARDLY","HATE","HAVE","HE","HEAD","HEALTH","HEAR","HEART","HEAT","HEAVY","HELL","HELP","HENCE","HER","HERE","HERSELF","HIDE","HIGH","HIGHLY","HILL","HIM","HIMSELF","HIS","HISTORICAL","HISTORY","HIT","HOLD","HOLE","HOLIDAY","HOME","HOPE","HORSE","HOSPITAL","HOT","HOTEL","HOUR","HOUSE","HOUSEHOLD","HOUSING","HOW","HOWEVER","HUGE","HUMAN","HURT","HUSBAND","I","IDEA","IDENTIFY","IF","IGNORE","ILLUSTRATE","IMAGE","IMAGINE","IMMEDIATE","IMMEDIATELY","IMPACT","IMPLICATION","IMPLY","IMPORTANCE","IMPORTANT","IMPOSE","IMPOSSIBLE","IMPRESSION","IMPROVE","IMPROVEMENT","IN","INCIDENT","INCLUDE","INCLUDING","INCOME","INCREASE","INCREASED","INCREASINGLY","INDEED","INDEPENDENT","INDEX","INDICATE","INDIVIDUAL","INDUSTRIAL","INDUSTRY","INFLUENCE","INFORM","INFORMATION","INITIAL","INITIATIVE","INJURY","INSIDE","INSIST","INSTANCE","INSTEAD","INSTITUTE","INSTITUTION","INSTRUCTION","INSTRUMENT","INSURANCE","INTEND","INTENTION","INTEREST","INTERESTED","INTERESTING","INTERNAL","INTERNATIONAL","INTERPRETATION","INTERVIEW","INTO","INTRODUCE","INTRODUCTION","INVESTIGATE","INVESTIGATION","INVESTMENT","INVITE","INVOLVE","IRON","IS","ISLAND","ISSUE","IT","ITEM","ITS","ITSELF","JOB","JOIN","JOINT","JOURNEY","JUDGE","JUMP","JUST","JUSTICE","KEEP","KEY","KID","KILL","KIND","KING","KITCHEN","KNEE","KNOW","KNOWLEDGE","LABOUR","LACK","LADY","LAND","LANGUAGE","LARGE","LARGELY","LAST","LATE","LATER","LATTER","LAUGH","LAUNCH","LAW","LAWYER","LAY","LEAD","LEADER","LEADERSHIP","LEADING","LEAF","LEAGUE","LEAN","LEARN","LEAST","LEAVE","LEFT","LEG","LEGAL","LEGISLATION","LENGTH","LESS","LET","LETTER","LEVEL","LIABILITY","LIBERAL","LIBRARY","LIE","LIFE","LIFT","LIGHT","LIKE","LIKELY","LIMIT","LIMITED","LINE","LINK","LIP","LIST","LISTEN","LITERATURE","LITTLE","LIVE","LIVING","LOAN","LOCAL","LOCATION","LONG","LOOK","LORD","LOSE","LOSS","LOT","LOVE","LOVELY","LOW","LUNCH","MACHINE","MAGAZINE","MAIN","MAINLY","MAINTAIN","MAJOR","MAJORITY","MAKE","MALE","MAN","MANAGE","MANAGEMENT","MANAGER","MANNER","MANY","MAP","MARK","MARKET","MARRIAGE","MARRIED","MARRY","MASS","MASTER","MATCH","MATERIAL","MATTER","MAY","MAYBE","ME","MEAL","MEAN","MEANING","MEANS","MEANWHILE","MEASURE","MECHANISM","MEDIA","MEDICAL","MEET","MEETING","MEMBER","MEMBERSHIP","MEMORY","MENTAL","MENTION","MERELY","MESSAGE","METAL","METHOD","MIDDLE","MIGHT","MILE","MILITARY","MILK","MIND","MINE","MINISTER","MINISTRY","MINUTE","MISS","MISTAKE","MODEL","MODERN","MODULE","MOMENT","MONEY","MONTH","MORE","MORNING","MOST","MOTHER","MOTION","MOTOR","MOUNTAIN","MOUTH","MOVE","MOVEMENT","MUCH","MURDER","MUSEUM","MUSIC","MUST","MY","MYSELF","NAME","NARROW","NATION","NATIONAL","NATURAL","NATURE","NEAR","NEARLY","NECESSARILY","NECESSARY","NECK","NEED","NEGOTIATION","NEIGHBOUR","NEITHER","NETWORK","NEVER","NEVERTHELESS","NEW","NEWS","NEWSPAPER","NEXT","NICE","NIGHT","NO","NOBODY","NOD","NOISE","NONE","NOR","NORMAL","NORMALLY","NORTH","NORTHERN","NOSE","NOT","NOTE","NOTHING","NOTICE","NOTION","NOW","NUCLEAR","NUMBER","NURSE","OBJECT","OBJECTIVE","OBSERVATION","OBSERVE","OBTAIN","OBVIOUS","OBVIOUSLY","OCCASION","OCCUR","ODD","OF","OFF","OFFENCE","OFFER","OFFICE","OFFICER","OFFICIAL","OFTEN","OIL","OKAY","OLD","ON","ONCE","ONE","ONLY","ONTO","OPEN","OPERATE","OPERATION","OPINION","OPPORTUNITY","OPPOSITION","OPTION","OR","ORDER","ORDINARY","ORGANISATION","ORGANISE","ORGANIZATION","ORIGIN","ORIGINAL","OTHER","OTHERWISE","OUGHT","OUR","OURSELVES","OUT","OUTCOME","OUTPUT","OUTSIDE","OVER","OVERALL","OWN","OWNER","PACKAGE","PAGE","PAIN","PAINT","PAINTING","PAIR","PANEL","PAPER","PARENT","PARK","PARLIAMENT","PART","PARTICULAR","PARTICULARLY","PARTLY","PARTNER","PARTY","PASS","PASSAGE","PAST","PATH","PATIENT","PATTERN","PAY","PAYMENT","PEACE","PENSION","PEOPLE","PER","PERCENT","PERFECT","PERFORM","PERFORMANCE","PERHAPS","PERIOD","PERMANENT","PERSON","PERSONAL","PERSUADE","PHASE","PHONE","PHOTOGRAPH","PHYSICAL","PICK","PICTURE","PIECE","PLACE","PLAN","PLANNING","PLANT","PLASTIC","PLATE","PLAY","PLAYER","PLEASE","PLEASURE","PLENTY","PLUS","POCKET","POINT","POLICE","POLICY","POLITICAL","POLITICS","POOL","POOR","POPULAR","POPULATION","POSITION","POSITIVE","POSSIBILITY","POSSIBLE","POSSIBLY","POST","POTENTIAL","POUND","POWER","POWERFUL","PRACTICAL","PRACTICE","PREFER","PREPARE","PRESENCE","PRESENT","PRESIDENT","PRESS","PRESSURE","PRETTY","PREVENT","PREVIOUS","PREVIOUSLY","PRICE","PRIMARY","PRIME","PRINCIPLE","PRIORITY","PRISON","PRISONER","PRIVATE","PROBABLY","PROBLEM","PROCEDURE","PROCESS","PRODUCE","PRODUCT","PRODUCTION","PROFESSIONAL","PROFIT","PROGRAM","PROGRAMME","PROGRESS","PROJECT","PROMISE","PROMOTE","PROPER","PROPERLY","PROPERTY","PROPORTION","PROPOSE","PROPOSAL","PROSPECT","PROTECT","PROTECTION","PROVE","PROVIDE","PROVIDED","PROVISION","PUB","PUBLIC","PUBLICATION","PUBLISH","PULL","PUPIL","PURPOSE","PUSH","PUT","QUALITY","QUARTER","QUESTION","QUICK","QUICKLY","QUIET","QUITE","RACE","RADIO","RAILWAY","RAIN","RAISE","RANGE","RAPIDLY","RARE","RATE","RATHER","REACH","REACTION","READ","READER","READING","READY","REAL","REALISE","REALITY","REALIZE","REALLY","REASON","REASONABLE","RECALL","RECEIVE","RECENT","RECENTLY","RECOGNISE","RECOGNITION","RECOGNIZE","RECOMMEND","RECORD","RECOVER","RED","REDUCE","REDUCTION","REFER","REFERENCE","REFLECT","REFORM","REFUSE","REGARD","REGION","REGIONAL","REGULAR","REGULATION","REJECT","RELATE","RELATION","RELATIONSHIP","RELATIVE","RELATIVELY","RELEASE","RELEVANT","RELIEF","RELIGION","RELIGIOUS","RELY","REMAIN","REMEMBER","REMIND","REMOVE","REPEAT","REPLACE","REPLY","REPORT","REPRESENT","REPRESENTATION","REPRESENTATIVE","REQUEST","REQUIRE","REQUIREMENT","RESEARCH","RESOURCE","RESPECT","RESPOND","RESPONSE","RESPONSIBILITY","RESPONSIBLE","REST","RESTAURANT","RESULT","RETAIN","RETURN","REVEAL","REVENUE","REVIEW","REVOLUTION","RICH","RIDE","RIGHT","RING","RISE","RISK","RIVER","ROAD","ROCK","ROLE","ROLL","ROOF","ROOM","ROUND","ROUTE","ROW","ROYAL","RULE","RUN","RURAL","SAFE","SAFETY","SALE","SAME","SAMPLE","SATISFY","SAVE","SAY","SCALE","SCENE","SCHEME","SCHOOL","SCIENCE","SCIENTIFIC","SCIENTIST","SCORE","SCREEN","SEA","SEARCH","SEASON","SEAT","SECOND","SECONDARY","SECRETARY","SECTION","SECTOR","SECURE","SECURITY","SEE","SEEK","SEEM","SELECT","SELECTION","SELL","SEND","SENIOR","SENSE","SENTENCE","SEPARATE","SEQUENCE","SERIES","SERIOUS","SERIOUSLY","SERVANT","SERVE","SERVICE","SESSION","SET","SETTLE","SETTLEMENT","SEVERAL","SEVERE","SEX","SEXUAL","SHAKE","SHALL","SHAPE","SHARE","SHE","SHEET","SHIP","SHOE","SHOOT","SHOP","SHORT","SHOT","SHOULD","SHOULDER","SHOUT","SHOW","SHUT","SIDE","SIGHT","SIGN","SIGNAL","SIGNIFICANCE","SIGNIFICANT","SILENCE","SIMILAR","SIMPLE","SIMPLY","SINCE","SING","SINGLE","SIR","SISTER","SIT","SITE","SITUATION","SIZE","SKILL","SKIN","SKY","SLEEP","SLIGHTLY","SLIP","SLOW","SLOWLY","SMALL","SMILE","SO","SOCIAL","SOCIETY","SOFT","SOFTWARE","SOIL","SOLDIER","SOLICITOR","SOLUTION","SOME","SOMEBODY","SOMEONE","SOMETHING","SOMETIMES","SOMEWHAT","SOMEWHERE","SON","SONG","SOON","SORRY","SORT","SOUND","SOURCE","SOUTH","SOUTHERN","SPACE","SPEAK","SPEAKER","SPECIAL","SPECIES","SPECIFIC","SPEECH","SPEED","SPEND","SPIRIT","SPORT","SPOT","SPREAD","SPRING","STAFF","STAGE","STAND","STANDARD","STAR","START","STATE","STATEMENT","STATION","STATUS","STAY","STEAL","STEP","STICK","STILL","STOCK","STONE","STOP","STORE","STORY","STRAIGHT","STRANGE","STRATEGY","STREET","STRENGTH","STRIKE","STRONG","STRONGLY","STRUCTURE","STUDENT","STUDIO","STUDY","STUFF","STYLE","SUBJECT","SUBSTANTIAL","SUCCEED","SUCCESS","SUCCESSFUL","SUCH","SUDDENLY","SUFFER","SUFFICIENT","SUGGEST","SUGGESTION","SUITABLE","SUM","SUMMER","SUN","SUPPLY","SUPPORT","SUPPOSE","SURE","SURELY","SURFACE","SURPRISE","SURROUND","SURVEY","SURVIVE","SWITCH","SYSTEM","TABLE","TAKE","TALK","TALL","TAPE","TARGET","TASK","TAX","TEA","TEACH","TEACHER","TEACHING","TEAM","TEAR","TECHNICAL","TECHNIQUE","TECHNOLOGY","TELEPHONE","TELEVISION","TELL","TEMPERATURE","TEND","TERM","TERMS","TERRIBLE","TEST","TEXT","THAN","THANK","THANKS","THAT","THE","THEATRE","THEIR","THEM","THEME","THEMSELVES","THEN","THEORY","THERE","THEREFORE","THESE","THEY","THIN","THING","THINK","THIS","THOSE","THOUGH","THOUGHT","THREAT","THREATEN","THROUGH","THROUGHOUT","THROW","THUS","TICKET","TIME","TINY","TITLE","TO","TODAY","TOGETHER","TOMORROW","TONE","TONIGHT","TOO","TOOL","TOOTH","TOP","TOTAL","TOTALLY","TOUCH","TOUR","TOWARDS","TOWN","TRACK","TRADE","TRADITION","TRADITIONAL","TRAFFIC","TRAIN","TRAINING","TRANSFER","TRANSPORT","TRAVEL","TREAT","TREATMENT","TREATY","TREE","TREND","TRIAL","TRIP","TROOP","TROUBLE","TRUE","TRUST","TRUTH","TRY","TURN","TWICE","TYPE","TYPICAL","UNABLE","UNDER","UNDERSTAND","UNDERSTANDING","UNDERTAKE","UNEMPLOYMENT","UNFORTUNATELY","UNION","UNIT","UNITED","UNIVERSITY","UNLESS","UNLIKELY","UNTIL","UP","UPON","UPPER","URBAN","US","USE","USED","USEFUL","USER","USUAL","USUALLY","VALUE","VARIATION","VARIETY","VARIOUS","VARY","VAST","VEHICLE","VERSION","VERY","VIA","VICTIM","VICTORY","VIDEO","VIEW","VILLAGE","VIOLENCE","VISION","VISIT","VISITOR","VITAL","VOICE","VOLUME","VOTE","WAGE","WAIT","WALK","WALL","WANT","WAR","WARM","WARN","WASH","WATCH","WATER","WAVE","WAY","WE","WEAK","WEAPON","WEAR","WEATHER","WEEK","WEEKEND","WEIGHT","WELCOME","WELFARE","WELL","WEST","WESTERN","WHAT","WHATEVER","WHEN","WHERE","WHEREAS","WHETHER","WHICH","WHILE","WHILST","WHITE","WHO","WHOLE","WHOM","WHOSE","WHY","WIDE","WIDELY","WIFE","WILD","WILL","WIN","WIND","WINDOW","WINE","WING","WINNER","WINTER","WISH","WITH","WITHDRAW","WITHIN","WITHOUT","WOMAN","WONDER","WONDERFUL","WOOD","WORD","WORK","WORKER","WORKING","WORKS","WORLD","WORRY","WORTH","WOULD","WRITE","WRITER","WRITING","WRONG","YARD","YEAH","YEAR","YES","YESTERDAY","YET","YOU","YOUNG","YOUR","YOURSELF","YOUTH" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment