' Return True if the number is primeFunction IsPrime(ByVal number As Long) As Boolean ' manually test 2 and 3 If number > 3 Then If number Mod 2 = 0 Then Exit Function If number Mod 3 = 0 Then Exit Function End If ' we can now avoid to consider multiples ' of 2 and 3. This can be done really simply ' by starting at 5 and incrementing by 2 and 4 ' alternatively, that is: ' 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, ... Dim divisor As Long Dim increment As Long Dim maxDivisor As Long divisor = 5 increment = 2 ' we don't need to go higher than the square ' root of the number maxDivisor = Sqr(number) + 1 Do Until divisor > maxDivisor If number Mod divisor = 0 Then Exit Function divisor = divisor + increment ' this modifies 2 into 4 and viceversa increment = 6 - increment Loop ' if we get here, the number is prime IsPrime = True End Function