diff --git a/weeks/week-15/solutions/fychao/0603/gcd.py b/weeks/week-15/solutions/fychao/0603/gcd.py new file mode 100644 index 000000000..bc06fbadd --- /dev/null +++ b/weeks/week-15/solutions/fychao/0603/gcd.py @@ -0,0 +1,9 @@ +from math import gcd + + +def sum_of_gcd(n: int) -> int: + total = 0 + for i in range(1, n): + for j in range(i + 1, n + 1): + total += gcd(i, j) + return total diff --git a/weeks/week-15/solutions/fychao/0603/test_gcd.py b/weeks/week-15/solutions/fychao/0603/test_gcd.py new file mode 100644 index 000000000..45b0278d5 --- /dev/null +++ b/weeks/week-15/solutions/fychao/0603/test_gcd.py @@ -0,0 +1,18 @@ +import unittest + +from gcd import sum_of_gcd + + +class TestSumOfGcd(unittest.TestCase): + def test_n_equals_2(self): + self.assertEqual(sum_of_gcd(2), 1) + + def test_n_equals_10(self): + self.assertEqual(sum_of_gcd(10), 67) + + def test_n_equals_1_edge_case(self): + self.assertEqual(sum_of_gcd(1), 0) + + +if __name__ == "__main__": + unittest.main()