feat: add GCD and LCM function

This commit is contained in:
dudaodong
2023-05-06 11:02:00 +08:00
parent 945c59896b
commit 654ba15aaf
2 changed files with 80 additions and 0 deletions

View File

@@ -210,3 +210,41 @@ func TestIsPrime(t *testing.T) {
assert.Equal(true, IsPrime(3))
assert.Equal(false, IsPrime(4))
}
func TestGCD(t *testing.T) {
assert := internal.NewAssert(t, "TestGCD")
assert.Equal(1, GCD(1, 1))
assert.Equal(1, GCD(1, -1))
assert.Equal(-1, GCD(-1, 1))
assert.Equal(-1, GCD(-1, -1))
assert.Equal(1, GCD(1, 0))
assert.Equal(1, GCD(0, 1))
assert.Equal(-1, GCD(-1, 0))
assert.Equal(-1, GCD(0, -1))
assert.Equal(1, GCD(1, -2))
assert.Equal(1, GCD(-2, 1))
assert.Equal(-1, GCD(-1, 2))
assert.Equal(-1, GCD(2, -1))
assert.Equal(-1, GCD(-1, -2))
assert.Equal(-1, GCD(-2, -1))
assert.Equal(-9, GCD(-27, -36))
assert.Equal(3, GCD(3, 6, 9))
}
func TestLCM(t *testing.T) {
assert := internal.NewAssert(t, "TestLCM")
assert.Equal(0, LCM(0))
assert.Equal(1, LCM(1))
assert.Equal(-1, LCM(-1))
assert.Equal(0, LCM(0, -1))
assert.Equal(0, LCM(0, 1))
assert.Equal(1, LCM(1, 1))
assert.Equal(1, LCM(1, 2))
assert.Equal(6, LCM(3, 6, 9))
}