Problem:
Take N numbers as input and print their LCM
Input Format:
num1 num2 num3......ie numbers seperated by space
Output Format:
LCM
LCM
Constraints:
none
none
Sample Input
20 30 40 50
Sample Output:
LCM is 600
LCM is 600
Explanations:
600 is LCM of 20.30.40.50
600 is LCM of 20.30.40.50
Solution:
my ($x, $y) = @_;
($x, $y) = ($y, $x % $y) while $y;
return $x;
}
sub lcm {
return($_[0] * $_[1] / gcf($_[0], $_[1]));
}
sub multilcm {
my $x = shift;
$x = lcm($x, shift) while @_;
return $x;
}
chomp($num=<STDIN>);
@arr=split(" ",$num);
$ans=multilcm(@arr);
print "LCM is $ans";
Tips:
Find LCM of 2 numbers at a time, say lcm1. In next cycle, find lcm of lcm1 and next number and so on.
No comments:
Post a Comment