// 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 ;
}
Ly8gVGltb3RoeSBQcmljZQkJCQlDUzFBCQkJCUNoNiBDaGFsbGVuZ2UgMjEKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogRGV0ZXJtaW5lIHByaW1lCiAqIAogKiBUaGlzIHByb2dyYW0gcmVjZWl2ZXMgYW55IG51bWJlciBvZiBpbnRlZ2VycyBhbmQgZGV0ZXJtaW5lcyBpZiB0aGV5IGFyZQogKiBwcmltZSBudW1iZXJzLgogKiAKICogSW5wdXRzOgogKiAgSW50ZWdlciBvciBpbnRlZ2VycwogKiAKICogT3V0cHV0czoKICogIFByaW1lIGRldGVybWluYXRpb24KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmN0aW9uIHByb3RvdHlwZQpib29sIGlzUHJpbWUoaW50IG51bSk7CgppbnQgbWFpbigpIHsKICAgIGludCBudW1iZXI7CgogICAgY291dCA8PCAiLS0tLS0tLS0gUHJpbWUgTnVtYmVyIENoZWNrZXIgLS0tLS0tLS0iIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJFbnRlciBhbiBpbnRlZ2VyIChvciBlbnRlciAwIHRvIGV4aXQpOiAiIDw8IGVuZGw7CiAgICAKICAgIHdoaWxlIChjaW4gPj4gbnVtYmVyICYmIG51bWJlciAhPSAwKSB7CiAgICAgICAgaWYgKGlzUHJpbWUobnVtYmVyKSkgewogICAgICAgICAgICBjb3V0IDw8IG51bWJlciA8PCAiIGlzIGEgcHJpbWUgbnVtYmVyLiIgPDwgZW5kbCA8PCBlbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgbnVtYmVyIDw8ICIgaXMgTk9UIGEgcHJpbWUgbnVtYmVyLiIgPDwgZW5kbCA8PCBlbmRsOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICJFbnRlciBhbm90aGVyIGludGVnZXIgKG9yIDAgdG8gZXhpdCk6ICIgPDwgZW5kbDsKICAgIH0KICAgIGNvdXQgPDwgIlByb2dyYW0gZW5kZWQuIiA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0KCi8vIEZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgbnVtYmVyIGlzIHByaW1lCmJvb2wgaXNQcmltZShpbnQgbnVtKSB7CiAgICAvLyBOdW1iZXJzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxIGFyZSBub3QgcHJpbWUKICAgIGlmIChudW0gPD0gMSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyBDaGVjayBmb3IgZmFjdG9ycyBmcm9tIDIgdXAgdG8gdGhlIHNxdWFyZSByb290IG9mIHRoZSBudW1iZXIKICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IHNxcnQobnVtKTsgaSsrKSB7CiAgICAgICAgaWYgKG51bSAlIGkgPT0gMCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7IAogICAgICAgIH0KICAgIH0KICAgIC8vIElmIG51bWJlciBpcyBwcmltZSwgcmV0dXJuIHRydWUKICAgIHJldHVybiB0cnVlOwp9