Files
learngo/x-tba/foundations/03-if-switch-loop/01-for-crunch-the-primes/main.go
Inanc Gumus eb8f9987a8 add: new tictactoe game
add: testing to tictactoe

rename: tictactoe

add: tictactoe steps

refactor: tictactoe const names

refactor: tictactoe loop

add: tictactoe bad switch example (fallthrough)

refactor: tictactoe loop skin

remove: tictactoe changable skin

refactor: tictactoe all

remove: tictactoe unnecessary base dir

add: tictactoe slices

add: tictactoe slices

remove: tictactoe fallthrough

rename: tictactoe slices 10 -> 09

update: loops skin tictactoe

add: tictactoe randomization

add: tictactoe infinite loop and labeled break

refactor: tictactoe rand and infinite loop

add: tictactoe buggy winning algo

add: tictactoe more tests

rename: tictactoe wrongPlay to wrongMove

add: tictactoe even more tests

fix: tictactoe

rename: tictactoe waitForInput to wait

add: tictactoe os.args gameSpeed

remove: tictactoe unnecessary files

rename: tictactoe game messages

refactor: tictactoe main loop

add: types and arrays
2019-07-29 16:43:30 +03:00

64 lines
946 B
Go

// For more tutorials: https://blog.learngoprogramming.com
//
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
// go run . {1..100}
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
const usageMsg = `Type a couple of unique numbers.
Separate them with spaces.`
// remember [1:] skips the first argument
args := os.Args[1:]
if len(args) == 0 {
fmt.Println(usageMsg)
return
}
main:
for _, arg := range args {
n, err := strconv.Atoi(arg)
if err != nil {
// skip non-numerics
continue
}
switch {
// prime
case n == 2, n == 3:
fmt.Print(n, " ")
continue
// not a prime
case n <= 1, n%2 == 0, n%3 == 0:
continue
}
for i, w := 5, 2; i*i <= n; {
// not a prime
if n%i == 0 {
continue main
}
i += w
w = 6 - w
}
// all checks ok: it's a prime
fmt.Print(n, " ")
}
fmt.Println()
}