Skip to content

Instantly share code, notes, and snippets.

@seemcat
Created January 9, 2019 17:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seemcat/913ecc0656b8a67cebecfc1c047f9c0f to your computer and use it in GitHub Desktop.
Save seemcat/913ecc0656b8a67cebecfc1c047f9c0f to your computer and use it in GitHub Desktop.
c0d3 solved in Go
package main
import (
"fmt"
)
// default parameters
var list []int
var biggerNum int
var i int = 1
var max int = 0
var gotBigNum = false
func solution8(num1, num2 int) int {
// specify biggerNum's default value
if num1 > num2 && gotBigNum == false {
biggerNum = num1
gotBigNum = true
} else if num1 < num2 && gotBigNum == false {
biggerNum = num2
gotBigNum = true
}
// check if i is a potential GCD
if num1 % i == 0 && num2 % i == 0 {
list = append(list, i)
}
// our base case
if i >= biggerNum {
// specify max's default value
if max == 0 {
max = list[0]
}
// iterate over array using range
for _, value := range list {
if value > max {
max = value
}
}
return max
}
i = i + 1
return solution8(num1, num2)
}
func main() {
fmt.Println(solution8(50, 25))
// fmt.Println(solution8(100, 10))
}
@valtyriel
Copy link

Euclidean algorithm

package main

import "fmt"

func gcd(a, b int) int {
	if b == 0 {
		return a
	}
	return gcd(b, a%b)
}

func main() {
	fmt.Println("Greatest Common denominator of a,b:")
	for i := -10; i < 10; i++ {
		for j := -10; j < 10; j++ {
			fmt.Printf("%v, %v: %v\n", i, j, GCD(i, j))
		}
	}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment