use POSIX; use bignum; ($a,$b,$c)=glob<>; $x=-$a/3; for(0..99){ $x-=((($x+$a)*$x+$b)*$x+$c)/((3*$x+2*$a)*$x+$b); } $x=floor($x+.5); $d=$a+$x; $e=$b+$x*$d; $y=floor((-$d+sqrt($d**2-4*$e))/2+.5); $z=floor((-$d-sqrt($d**2-4*$e))/2+.5); print join$",sort{$a-$b}$x,$y,$z;