Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

greatest common factor

by MrNobo1024 (Hermit)
on Feb 07, 2001 at 10:42 UTC ( #56906=snippet: print w/ replies, xml ) Need Help??

Description: 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;
Comment on greatest common factor
Download Code
Re: greatest common factor
by zeno (Friar) on Feb 07, 2001 at 16:16 UTC

    Very elegantly done. BTW, there's a typo in the sub multigcf: gcd should be gcf! Otherwise, a very nice offering.

    sub multigcf { my $x = shift; $x = gcd($x, shift) while @_; #should be gcf! return $x; }
Re: greatest common factor
by Anonymous Monk on Jun 12, 2014 at 08:03 UTC

    the copy/paste i needed

    many thanks ^_^

Back to Snippets Section

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://56906]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2015-03-29 09:30 GMT
Find Nodes?
    Voting Booth?

    When putting a smiley right before a closing parenthesis, do you:

    Results (630 votes), past polls