Buenas,
Para eso BigInteger tiene el método compareTo:
http://www.tutorialspoint.com/java/m..._compareto.htm
Yo te recomendaria revisar y simplificar el algorimo. Resulta mas claro si haces dos bucles, uno para calcular el factorial (un for con 2 lineas de código) y luego otro para sumar las cifras del resultado (otro for con 3 lineas de código).
Yo lo he hecho así y usando BigInteger y el código es mucho más compacto y comprensible. Mi resultado para 100 es:
Código Salida Programa:
Ver originalFactorial:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Suma: 648
No te voy a poner mi código ya que por lo que has dicho quieres intentarlo tu mismo, pero si no te sale a lo mejor te puede servir para que puedas refactorizar el tuyo.
Un saludo