| #include <cmath> |
| #include <iostream> |
| |
| using namespace std; |
| |
| void createprimestable(int* p, int int sz) |
| { |
| int i, j, k; |
| for (i = 0; i < sz; ++i) p[i] = (i > 1) ? 1 : 0; |
| |
| for (i = 2; i < sz; ++i) if (p[i] == 1) |
| for (j = i<<1; j < sz; j+=i) p[j] = 0; |
| }; |
| |
| int main(int argc, char** argv) |
| { |
| if (argc != 2) return EXIT_FAILURE; |
| int num(atoi(argv[1])); |
| |
| int *primes = (int*) malloc((num + 1) * sizeof(int)); |
| primes[0] = 0; createprimestable(primes, num + 1); |
| |
| cout << (primes[num] ? "PRIME" : "NOT PRIME") << endl; |
| return EXIT_SUCCESS; |
| }; |