// перебираем все числа до binomResult и ищем те, у которых НОД равен 1
for (int i = 2; i < binomResult; i++) {
if (findGcd(binomResult, i) == 1) {
result++;
}
}
Думаю, от Вас ожидали не такое решение "в лоб", а эффективное решение, тем более, что надо решать для больших значений.
Почитайте про
функцию Эйлера.
Вам нужно её свойство мультипликативности.
Т.е. нужно её аргумент (этот биномиальный коэффициент) на простые множители разложить и из них получить значение функции Эйлера.
Длинная арифметика не нужна. Для этого и стоит в условии требование искать остаток, а не само длинное значение. Тут нужно все промежуточные вычисления (сложение и умножение) этого значения делать по этому модулю.