Prime factoring function using recursion
+1 for stopping your isPrime search at the SqRt(n). That's a nice little optimization. 
+1 for incrementing by 2. It's nice to see you realized that since it wasn't possibly even by this point, that you could optimize. 
Next, consider a sieve or memento implementation for further performance improvements on isPrime. 
Consider renaming root to limit. 
+1 for extracting an isEven method. 
-1 for neglecting to use it in your isPrime method. 
Instead of having prfact and factor, Rename prfact to factor, overloading the latter. Make it private scoped to hide the implementation details from the outside world. 




Sorry for the mostly non-algo review. Not my strong suit &amp; short on time.