//  Copyright [2021] <zikai wang>
#include <iostream>
#include <string>
using namespace std;
void markMultiples(int p, int num[], int user_input_num);

int main() {
    bool ask_or_stop = true;  // control keep asking or not
    int user_input_num = 0;  // the num user input
    int nums[1000] = {0};
    int p = 2;
    while (ask_or_stop) {
        cout << "Enter a whole positive number less than 1001:  ";
        string user_input_str = "";
        cin >> user_input_str;
        user_input_num = atoi(user_input_str.c_str());
        // change user input to valied int
        if (user_input_num > 1000 || user_input_num < 0) {
            cout << "The number is out of valid input range! " << endl;
        } else {  // if the user input is valied, start the process
            cout << "The prime numbers below " <<
                    user_input_num << " are: " << endl;
            markMultiples(p, nums, user_input_num);
            //  print
            for (int i = 2; i <= user_input_num; i++) {
                if (nums[i] == 0) {
                    cout << i << "\t";
                }
            }
            ask_or_stop = false;
        }
    }
    return 0;
}
