#!/usr/bin/perl -w # Fracciones egipcias # use bignum; my $number = $ARGV[0]; die "Not a number" if ($number <=0 || $number !~ /\./ || 0+$number ne $number); $EPS=1; while ($EPS > 0.000_000_000_000_001){ $EPS /=2; } print "+",int($number), "\n"; $resto = $number-int($number); $sum += int($number); # $i = 2; while ($resto > $EPS) { $i = 1+int 1/$resto; # print "\r+1/$i"; if ($resto - 1/$i < 0 ) { # $i++; }else { $resto -= 1/$i; $sum += 1/$i; print "+1/$i\n"; } } print "Comprobación = $sum\n"; __END__ Cualquier número racional puede transformarse en una suma de fracciones egipcias.