#include /* printf */ #define FALSE 0 #define TRUE 1 /************************************************************************** Function: is_prime Description: Takes a number from user/file and checks if it is prime. Inputs: number - A number (integer) to be used in prime check process. Outputs: Value of either TRUE (integer) or FALSE (integer) depending on if the given number is prime or not. **************************************************************************/ int is_prime(int number) { int i; /*looping variable */ /*holds perceived true or false value (prime or not)*/ int primeCheck = 0; /*checks if number is prime*/ for(i = 2; i <= (number / 2); ++i) { if(number % i == 0) { primeCheck = 1; break; } } /*assigns appropriate value to check*/ if (primeCheck == 0 && number != 1) { return TRUE; } else { return FALSE; } } /************************************************************************** Function: conjecture Description: Takes 2 numbers that act as a range from user/file and prints valid values that match the standard of Goldbach conjecture. Inputs: low - A number (integer) to be used as lower end of range. high - A number (integer) to be used as higher end of range. Outputs: Prints the valid values of Goldback conjecture. **************************************************************************/ void conjecture(int low, int high) { int i; /*looping variable */ int prime1; /*holds potential/final first prime(s) */ int prime2; /*holds potential/final second prime(s)*/ for(i = low; i <= high; i++) { if(i % 2 != 1) { /*loops through potential first primes*/ for(prime1 = 2; prime1 < i; ++prime1) { /*holds 1 or 0 depending on if desired values are found*/ int found = 0; /*breaks if desires values are found*/ if(found) { found = 0; break; } /*loops through potential second primes*/ for(prime2 = 1; prime2 < i; ++prime2) { /*holds perceived true or false value (prime or not)*/ int primeCheck1; /*holds perceived true or false value (prime or not)*/ int primeCheck2; /*check if potential primes are prime*/ primeCheck1 = is_prime(prime1); primeCheck2 = is_prime(prime2); if(primeCheck1 && primeCheck2) { /*Makes sure values fit standard before printing*/ if((prime1 <= prime2) && (prime1 + prime2 == i)) { printf("%3i = %3i + %3i\n", i, prime1, prime2); found = 1; break; } } } } } } }