// Timothy Price				CS1A				Ch6 Challenge 21
/*******************************************************************************
 * Determine prime
 * 
 * This program receives any number of integers and determines if they are
 * prime numbers.
 * 
 * Inputs:
 *  Integer or integers
 * 
 * Outputs:
 *  Prime determination
*******************************************************************************/

#include <iostream>
#include <cmath>

using namespace std;

// Function prototype
bool isPrime(int num);

int main() {
    int number;

    cout << "-------- Prime Number Checker --------" << endl;
    cout << "Enter an integer (or enter 0 to exit): " << endl;
    
    while (cin >> number && number != 0) {
        if (isPrime(number)) {
            cout << number << " is a prime number." << endl << endl;
        } else {
            cout << number << " is NOT a prime number." << endl << endl;
        }
        cout << "Enter another integer (or 0 to exit): " << endl;
    }
    cout << "Program ended." << endl;
    return 0;
}

// Function to check if a number is prime
bool isPrime(int num) {
    // Numbers less than or equal to 1 are not prime
    if (num <= 1) {
        return false;
    }

    // Check for factors from 2 up to the square root of the number
    for (int i = 2; i <= sqrt(num); i++) {
        if (num % i == 0) {
            return false; 
        }
    }
    // If number is prime, return true
    return true;
}