Example #1
0
// Euler1 solution
func Euler1(l int) int {
	sum := 0
	for i := 1; i < l; i++ {
		if goutils.IsDiv(i, 3) || goutils.IsDiv(i, 5) {
			sum += i
		}
	}
	return sum
}
Example #2
0
// Euler2 solution
func Euler2(l int) int {
	FibSeq := goutils.FibonacciLimit(l)
	var SumOfEvens int

	for i := 1; i < len(FibSeq); i++ {
		FibElem := FibSeq[i]
		if FibElem < l && goutils.IsDiv(FibElem, 2) {
			SumOfEvens += FibElem
		}
	}
	return SumOfEvens
}
// TestIsDiv tests the IsDiv function
func TestIsDiv(t *testing.T) {
	type IsDivTest struct {
		test [2]int // input
		expt bool   // expected result
	}

	var tt = []IsDivTest{
		{[2]int{4, 2}, true},
		{[2]int{9, 2}, false},
		{[2]int{10, 3}, false},
		{[2]int{0, 2}, false},
		{[2]int{2, 0}, false},
	}

	for i := 0; i < len(tt); i++ {
		testIn := goutils.IsDiv(tt[i].test[0], tt[i].test[1])
		testExp := tt[i].expt

		if testIn != testExp {
			t.Error("IsDiv test failed")
		}
	}
}