updated semiprime test