use Math::Pari 'lcm';my($n,$d)=split/\//,shift;sub p{print"1/$_[0] "}while(1){my $u=int$d/$n+1;p$u;my $l=lcm$d,$u;$n=$n*$l/$d-$l/$u;$d=$l;p($d),die$/if$n==1} #### ($n,$d)=split/\//,shift;sub p{print"1/$_[0] "}while(1){use Math::Pari lcm;$u=int$d/$n+1;p$u;$l=lcm$d,$u;$n=$n*$l/$d-$l/$u;$d=$l;p($d),die$/if$n==1} #### #!/usr/bin/perl use strict; use warnings; use Math::Pari qw/gcd lcm/; my ($num, $den) = split m|/|, $ARGV[0]; my @result; while (1) { my $unit = int($den / $num + 1); push @result, $unit; my $lcm = lcm($den, $unit); $num = ($num * ($lcm / $den)) - ($lcm / $unit); $den = $lcm; push @result, $den and last if $num == 1; } print "1/$_ " for @result;