/** * GOLDBACH.C * * Exercise solution 2.6. (C By Dissection Chap. 4, ex. 15) * * Tests Goldbach's Conjecture on an interval. * 26-Feb-03 by Dimon **/ /** * INCLUDE statements **/ #include "primes.h" /** * DEFINE statements **/ #define BEGIN 0 #define END 1500 /** * The main function **/ int main(void) { /* Declaration of variables */ int number, firstPrime, lastPrime; int status = 0; /* Display program header */ printf("Goldbach's Conjecture:\n"); printf("Every even integer is a sum of two odd primes.\n"); printf("----------------------------------------------\n"); printf("\n"); printf("Beginning at: %d \n", BEGIN); printf("Ending at: %d \n", END); /* A FOR loop calculates and prints out the results */ for(number = BEGIN; number <= END; number++) { if (number % 2 == 0) { /* Only even integers are examined */ firstPrime = 3; lastPrime = number - firstPrime; /* Repeat until a sum of two odd primes that equals number has been found */ while ((isPrime(firstPrime) && isPrime(lastPrime)) == 0) { firstPrime += 2; lastPrime = number - firstPrime; } /* WHILE */ printf("%10d = %9d + %9d \n", number, firstPrime, lastPrime); } /* IF */ } /* End of FOR loop */ /* Terminate program */ return status; } /* END OF MAIN */