#!/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;