Solution: Loops
Let's look at the solution.
We'll cover the following...
Solution
Press + to interact
package mainimport ("fmt""math""sync""time")var (mu sync.Mutex)func isPrime(num int) bool {for i := 2; i <= int(math.Sqrt(float64(num))); i++ {if int(num)%i == 0 {return false}}return true}func findPrimes(resultMap map[int]struct{}, startFrom, tryCount int) {for i := startFrom; i < startFrom+tryCount; i++ {if isPrime(i) {mu.Lock()resultMap[i] = struct{}{}mu.Unlock()}}}func main() {resultMap := make(map[int]struct{})for i := 0; i < 100; i++ {go func(i int) {findPrimes(resultMap, 99999*i+2, 1000)}(i)}time.Sleep(time.Second * 3)fmt.Printf("Found %v primes\n", len(resultMap))if len(resultMap) < 6746 {panic("did not find all the prime numbers")}}
Explanation
...