Perl, 99 chars
Does not screw up on 139, 151, etc. Tested with number ranging from 1 to 9 digits.
$"=",";$%=1;$==$-=($n=<>)**.5; push@f,$==(($s=$=*$%-$s)+$-)/($%=($n-$s*$s)/$%)until$=>$-; say"$-;@f;" Note: $%, $=, and $- are all integer-forcing variables.