/* PrimeNumber.c - A program to accept a number from the user and determine * if the number is a prime number. It will then output the correct answer, * hopefully, or warn the user they have made an error input. * * Author: Bill Kirby * Written: January 31, 2006 * */ #include #include #define ULONG unsigned long int int main(void) { /****** Variable declarations ******/ ULONG usersNumber = 0; // Users input int evenCheck = 0; // Check for even number int flag = 0; // Flag for found prime number int primeCheck = 0; // Check for prime number ULONG i = 0; // Counter for loop /****** Print instructions ******/ printf("\n\nThis program will determine if a number is a prime number.\n"); printf("Enter a positive integer number from 1 to 4294967295 or enter a zero to exit.\n\n"); /******************************************** * Check for Prime Number Routine ********************************************/ do { printf("Enter a positive integer number: "); scanf("%u", &usersNumber); /******************************************************************************************** * This section is commented out because I can't get it to work due to the unsigned * integer variable I'm using for the users input. I'll have to learn how to error check * for this type of situation. * if(usersNumber < 0) { printf("You entered a negative number, try again.\n"); } else { *********************************************************************************************/ /* Determine if the number is even or odd. If odd check for prime numbers */ evenCheck = (usersNumber % 2); if(evenCheck == 0 && usersNumber != 0) printf("The number %u is an even number and can not be " \ "a prime number.\n", usersNumber); else { if(usersNumber == 0) break; else { for(i=3; i <= (usersNumber-1); i++) { primeCheck = (usersNumber % i); if(primeCheck == 0) { printf("The number %u is divisible by %u.\n", \ usersNumber, i); flag = 1; } } } if(flag == 0 && usersNumber != 0) printf("UREAKA! %u is a prime number!\n", usersNumber); } // } // This bracket goes with the commented out section above if(flag == 1) printf("The number %u is not a prime number, try again.\n", usersNumber); flag = 0; // Reset flags for next loop thru evenCheck = 0; primeCheck = 0; printf("\n"); // Make a little breathing room } while(usersNumber != 0); if(usersNumber == 0) printf("Thanks for playing! Goodbye!\n\n"); exit(0); }