$|--; my ($a, $b, $c, $d, $m, $n) = (0,1,1,0,0,0); while() { if($b && $d && (my $q=int($a/$b))==int($c/$d)) { $a = 10*($a-$b*$q); $c = 10*($c-$d*$q); print $q; } else { $q = $a; $a = $c; $c = $c * (($m % 3) % 2 ? $n * 2 : 1) + $q; $q = $b; $b = $d; $d = $d * (($m++ % 3) % 2 ? $n++ * 2 : 1) + $q; } } # Hit control-C when it stops printing # due to numeric overflow