#include <iostream>
#include <cassert>
#include <cmath>
bool isPrime (int num) {
assert(num >= 2);
if (num == 2) {
return true;
} else if (num % 2 == 0) {
return false;
} else {
bool prime = true;
int divisor = 3;
int upperLimit = (int) (sqrt(num) + 1);
while (divisor <= upperLimit) {
if (num % divisor == 0) {
prime = false;
}
divisor +=2;
}
return prime;
}
}
int main(int argc, char** argv) {
using namespace std;
int ret = 0;
if (argc < 2) {
cerr << "error: need an integer on command line" << endl;
return 1;
}
int theInt = atoi(argv[1]);
if (isPrime(theInt)) {
cout << theInt << " is a prime number!" << endl;
} else {
cout << theInt << " is composite" << endl;
}
return ret;
}
The output is
1231 is a prime number!