Go Euclid!

This commit is contained in:
Dan Buch
2012-11-18 07:50:09 -05:00
parent d231791a19
commit f3712555d5
2 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
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))
}