gcf top-level property

dynamic gcf
getter/setter pair

Returns the greatest common factor (GCF) of a list of numbers.

Example:

print(gcf(12, 18, 24)); // 6

Implementation

dynamic gcf = VarArgsFunction((args, kwargs) {
  List<num> numbers = _getArgsParams(args);
  if (numbers.isEmpty) {
    throw ArgumentError('List of numbers cannot be empty.');
  }

  num ggcf(num a, num b) {
    return b == 0 ? a : ggcf(b, a % b);
  }

  num result = numbers[0];
  for (int i = 1; i < numbers.length; i++) {
    result = ggcf(result, numbers[i]);
  }
  return Complex(result);
});