use bigint; $num = 8; $den = 3; $prevden = 1; $prevnum = 3; $previncnum = 2; $previncden = 1; $c = 0; $inc = 2; for ($i = 3; $i < 100; $i++) { #print "($i) $num / $den\n"; if (($i+1) % 3 == 0) { $inc += 4; ($m,$n) = ($num,$den); $num += ($x * $inc + $previncnum); $den += ($y * $inc + $previncden); ($prevnum,$prevden) = ($m,$n); ($previncnum,$previncden) = ($x,$y); } else { ($x,$y) = ($num,$den); $den += $prevden; $num += $prevnum; ($prevnum,$prevden) = ($x,$y); } } print "($i) $num / $den\n\n"; for ($i = 0; $i < length($num); $i++) { $c+=substr($num,$i,1); } print "$c\n";