This is a solution to the semi-prime problem with an improved algorithm and C++ templates, pthreads. It runs fast and efficient and can handle big numbers exceed the limitation of UNIT64_MAX.