I don't know, it doesn't look flexible enough. The classes should be wired up at runtime using an XML config file.
I also think it could also split the problem using a pool of threads to achieve better performance. Even better, you could queue up all the factors in a master node and have N slaves pulling from it and multiplying. After the queue is empty, all the master has to do is query each slave and multiply the intermediate results together.