diff --git a/src/lib/exercises/src/hackerrank/projecteuler/euler001.c b/src/lib/exercises/src/hackerrank/projecteuler/euler001.c index 7d10ab1..69c9cdc 100644 --- a/src/lib/exercises/src/hackerrank/projecteuler/euler001.c +++ b/src/lib/exercises/src/hackerrank/projecteuler/euler001.c @@ -39,7 +39,12 @@ unsigned long HACKERRANK_PROJECTEULER_euler001(int a, int b, int n) { // Since, we need the sum of multiples less than N n = n - 1; - unsigned long lcm = (a * b) / HACKERRANK_PROJECTEULER_gcd(a, b); + unsigned long gcd = HACKERRANK_PROJECTEULER_gcd(a, b); + if (gcd == 0) { + return 0; + } + + unsigned long lcm = (a * b) / gcd; return HACKERRANK_PROJECTEULER_sum_of_arithmetic_progression(n, a) + HACKERRANK_PROJECTEULER_sum_of_arithmetic_progression(n, b) - diff --git a/src/tests/unit/lib/hackerrank/projecteuler/euler001.testcases.json b/src/tests/unit/lib/hackerrank/projecteuler/euler001.testcases.json index 2021998..11c84fb 100644 --- a/src/tests/unit/lib/hackerrank/projecteuler/euler001.testcases.json +++ b/src/tests/unit/lib/hackerrank/projecteuler/euler001.testcases.json @@ -1,4 +1,5 @@ [ + { "a": 0, "b": 0, "n": 0, "expected": 0 }, { "a": 3, "b": 5, "n": 10, "expected": 23 }, { "a": 5, "b": 3, "n": 10, "expected": 23 }, { "a": 3, "b": 5, "n": 100, "expected": 2318 },