http://qs321.pair.com?node_id=56906

These functions determine the greatest common factor or least common multiple of a set of numbers. gcf() and lcm() take two numbers as arguments, and multigcf() and multilcm() will take any amount. EDIT: fixed a bug in multigcf().
sub gcf { my ($x, $y) = @_; ($x, $y) = ($y, $x % $y) while $y; return $x; } sub lcm { return($_[0] * $_[1] / gcf($_[0], $_[1])); } sub multigcf { my $x = shift; $x = gcf($x, shift) while @_; return $x; } sub multilcm { my $x = shift; $x = lcm($x, shift) while @_; return $x; }