1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | bool isPrime3( int x ) { if( x == 2 || x == 3) { return true; } if( x % 2 == 0 || x % 3 == 0 ) { return false; } int divisor = 5; int delta = 2; int limit = (int) sqrt(x); while( divisor <= limit ) { if( x % divisor == 0 ) { return false; } divisor += delta; delta = 6 - delta; } return true; } |
Other entries:
- isPrime: Naive version
- isPrime, Optimization 1: Iterate only until the square root of the number
- isPrime, Optimization 2: Only divide by odd numbers, until the square root of the number
- isPrime, Optimization 3: Skip the divisors that are multiple of 2 or 3
- Keep the previosly generated primes and use them to test the following numbers.
- isPrime, Recursive.
No comments:
Post a Comment