1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | bool isPrime2( int x ) { if( x == 2 ) { return true; } if( x % 2 == 0 ) { return false; } int limit = (int) sqrt(x); for( int divisor = 3; divisor <= limit; divisor += 2 ) { if( x % divisor == 0 ) { return false; } } 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