This is the Euclidean algorithm for finding the Greatest common divisor between two numbers. I thought I'd throw a bit of my own code into the fray. The first one uses a loop, the second uses recursion. Could someone benchmark this for me?
#!/usr/bin/perl -w
print "GCD: " . GCD( 45, 5 ) . " RecGCD: " . RecGCD( 45, 5 ) . "\n";
#Assumes $A is the largest number
sub GCD
{
$A = shift;
$B = shift;
$R = 1;
while ( $R != 0 )
{
$R = $A % $B;
if ( $R == 0 )
{
return $B;
}
$A = $B;
$B = $R;
}
}
#Assumes $A is the largest number
sub RecGCD
{
$A = shift;
$B = shift;
$R = 0;
$R = $A % $B;
if ( $R == 0 )
{
return $B;
}
RecGCD( $B, $R );
}
--=Lolindrath=--