One thing would be for isCircularPrime() to check for even digits as the very first thing. That would prevent half the isPrime() calls.

Also, it occurs to me that the leading digit of the number...