From c1320b79ec3c411ff7683ef6a14dfbf82f6a62b6 Mon Sep 17 00:00:00 2001 From: AugChao Date: Wed, 3 Jun 2026 11:55:43 +0800 Subject: [PATCH 1/2] test: add failing tests for UVA 11417 GCD --- .../week-15/solutions/fychao/0603/test_gcd.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 weeks/week-15/solutions/fychao/0603/test_gcd.py 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() From b812ab7cb8fc0a1d00b572df310d30f12e87c69d Mon Sep 17 00:00:00 2001 From: AugChao Date: Wed, 3 Jun 2026 11:56:04 +0800 Subject: [PATCH 2/2] feat: implement UVA 11417 GCD --- weeks/week-15/solutions/fychao/0603/gcd.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 weeks/week-15/solutions/fychao/0603/gcd.py 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