box-o-sand/algs4/src/meatballhat.com/algs4-gcd/main.go

39 lines
521 B
Go
Raw Normal View History

2012-11-18 12:50:09 +00:00
package main
import (
"fmt"
"os"
"strconv"
)
const USAGE string = `Usage: algs4-gcd <int> <int>`
func gcd(p, q uint64) uint64 {
if q == 0 {
return p
}
r := p % q
return gcd(q, r)
}
func main() {
if len(os.Args) < 3 {
fmt.Println(USAGE)
os.Exit(1)
}
p, err := strconv.ParseUint(os.Args[1], 10, 0)
if err != nil {
fmt.Println("Wherps: ", err)
os.Exit(1)
}
q, err := strconv.ParseUint(os.Args[2], 10, 0)
if err != nil {
fmt.Println("Wherps: ", err)
os.Exit(1)
}
fmt.Println(gcd(p, q))
}