//Matthew Santos      CS1A       Ch. 6, Pg. 375, #21
/***********************************************
 * 
 * DETERMINE IF PRIME
 * _____________________________________________
 * Determines if any given number is prime or
 * not.
 * _____________________________________________
 * INPUT
 *      num : number entered
 * 
 * OUTPUT
 *      true or false (prime or not)
 ***********************************************/
#include <iostream>
using namespace std;
 
// Function to check if a number is prime
bool isPrime(int);
 
int main() {
 
	//Declare and get input
    int num;
 
    cout << "Enter a number to check if it’s prime: ";
    cin >> num;
 
	//Determine is prime or not
    if (isPrime(num))
        cout << num << " is a prime number." << endl;
    else
        cout << num << " is not a prime number." << endl;
 
    return 0;
}
 
bool isPrime(int number)
{
    if (number <= 1)
        return false; // 0, 1, and negatives are not prime
 
    for (int i = 2; i * i <= number; i++) {
        if (number % i == 0)
            return false; // Found a divisor, not prime
    }
 
    return true; // No divisors found, it's prime
}
				Ly9NYXR0aGV3IFNhbnRvcyAgICAgIENTMUEgICAgICAgQ2guIDYsIFBnLiAzNzUsICMyMQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogCiAqIERFVEVSTUlORSBJRiBQUklNRQogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogRGV0ZXJtaW5lcyBpZiBhbnkgZ2l2ZW4gbnVtYmVyIGlzIHByaW1lIG9yCiAqIG5vdC4KICogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIElOUFVUCiAqICAgICAgbnVtIDogbnVtYmVyIGVudGVyZWQKICogCiAqIE9VVFBVVAogKiAgICAgIHRydWUgb3IgZmFsc2UgKHByaW1lIG9yIG5vdCkKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBGdW5jdGlvbiB0byBjaGVjayBpZiBhIG51bWJlciBpcyBwcmltZQpib29sIGlzUHJpbWUoaW50KTsKCmludCBtYWluKCkgewoJCgkvL0RlY2xhcmUgYW5kIGdldCBpbnB1dAogICAgaW50IG51bTsKICAgIAogICAgY291dCA8PCAiRW50ZXIgYSBudW1iZXIgdG8gY2hlY2sgaWYgaXTigJlzIHByaW1lOiAiOwogICAgY2luID4+IG51bTsKCgkvL0RldGVybWluZSBpcyBwcmltZSBvciBub3QKICAgIGlmIChpc1ByaW1lKG51bSkpCiAgICAgICAgY291dCA8PCBudW0gPDwgIiBpcyBhIHByaW1lIG51bWJlci4iIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCBudW0gPDwgIiBpcyBub3QgYSBwcmltZSBudW1iZXIuIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cgpib29sIGlzUHJpbWUoaW50IG51bWJlcikKewogICAgaWYgKG51bWJlciA8PSAxKQogICAgICAgIHJldHVybiBmYWxzZTsgLy8gMCwgMSwgYW5kIG5lZ2F0aXZlcyBhcmUgbm90IHByaW1lCgogICAgZm9yIChpbnQgaSA9IDI7IGkgKiBpIDw9IG51bWJlcjsgaSsrKSB7CiAgICAgICAgaWYgKG51bWJlciAlIGkgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBGb3VuZCBhIGRpdmlzb3IsIG5vdCBwcmltZQogICAgfQoKICAgIHJldHVybiB0cnVlOyAvLyBObyBkaXZpc29ycyBmb3VuZCwgaXQncyBwcmltZQp9