diff --git a/smallest_multiple/main.go b/smallest_multiple/main.go new file mode 100644 index 0000000..0c879a9 --- /dev/null +++ b/smallest_multiple/main.go @@ -0,0 +1,23 @@ +package main + +import "fmt" + +func main() { + n := 20 + for { + if IsDivisibleFor1to20(n) { + fmt.Println("evenly divisible by all of the numbers from 1 to 20:", n) + return + } + n++ + } +} + +func IsDivisibleFor1to20(n int) bool { + for i := 1; i <= 20; i++ { + if n%i != 0 { + return false + } + } + return true +} diff --git a/smallest_multiple/smallest_multiple_test.go b/smallest_multiple/smallest_multiple_test.go new file mode 100644 index 0000000..6547c99 --- /dev/null +++ b/smallest_multiple/smallest_multiple_test.go @@ -0,0 +1,31 @@ +package main + +import "testing" + +func TestIsDivisibleFor1to20(t *testing.T) { + tt := []struct { + name string + input int + want bool + }{ + { + "20", + 20, + false, + }, + { + "14", + 14, + false, + }, + } + + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + got := IsDivisibleFor1to20(tc.input) + if got != tc.want { + t.Errorf("IsDivisibleFor1to20(%d)=%v, want %v", tc.input, got, tc.want) + } + }) + } +}