Morning,

I bought the book, "Learn C on the Mac"

So far have been enjoying it but have become stumped at one section.

I was hoping someone could help.

Its to do with the exercise on prime numbers in chap 6.

Regarding the loop to determine whether a number is prime - to me it sounds like the program is able to make out what a prime number is yet we still need to prove a number is a prime.

am i wrong in thinking this.

Code:int main (int argc, const char * argv[]) { bool isPrime; int startingPoint, candidate, last, i; startingPoint = 24; if ( startingPoint < 2 ) { candidate = 2; } else if ( startingPoint == 2 ) { candidate = 3; } else { candidate = startingPoint; if (candidate % 2 == 0) /* Test only odd numbers */ candidate--; do { isPrime = true; /* Assume glorious success */ candidate += 2; /* Bump to the next number to test */ last = sqrt( candidate ); /* We'll check to see if candidate */ /* has any factors, from 3 to last */ /* Loop through odd numbers only */for ( i = 3; (i <= last) && isPrime; i += 2 ) {// Here it looks as //though the program can deduce whether a number is prime //yet we still need to tell it what a prime number is. // - the "&& isPrime" sounds as though it can deduce // whether a number is prime if ( (candidate % i) == 0 ) isPrime = false; } } while ( ! isPrime ); } printf( "The next prime after %d is %d. Happy?\n", startingPoint, candidate ); return 0; }

Thanks,

/84.