change the main function put values of l for lower bound and
change the main function, put values of l for lower bound and m for higher bound. You need to allocate static boolean array prime with size m+1. To have predefined numbers instead of user input
#include
 #include
 using namespace std;
void run_game(bool *prime, int l, int m)
 {
    int number = 0;
    for (int p = 2; p*p <= m; p++)
    {
        if (prime[p] == true)
        {
            // Update all the multiples of p
            for (int i = p * 2; i <= m; i += p)
                    prime[i] = false;
        }
    }
    for (int p = l; p <= m; p++)
        if (prime[p])
            number++;
   cout << \"There are \" << number << \" prime numbers between \" << l << \" and \" << m <<\":\"<    // Print all prime numbers
    for (int p = l; p <= m; p++)
        if (prime[p])
            cout << p << \" \";
    cout << endl;
 }
int main()
 {
    int l,m;
    bool check = false;
    string user;
    do {
        cout << \"Please input lower bound and upper bound and hit enter (e.g. 10 100): \" << endl;
        cin >> l;
        cin >> m;
       // initialize entire boolean array to true //
        bool *prime = new bool[m + 1];
        memset(prime, true, m + 1);
       run_game(prime, l, m);
        cout << \"Do you want to continue or not? Please answer yes or no and hit enter:\";
        cin >> user;
        if (user == \"yes\")
        {
            check = true;
        }
        else if (user == \"no\")
            break;
        else
            continue;
    } while (check == true);
    return 0;
 }
Solution
#include <iostream>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 using namespace std;
 void run_game(bool *prime, int l, int m)
 {
 int number = 0;
 for (int p = 2; p*p <= m; p++)
 {
 if (prime[p] == true)
 {
 // Update all the multiples of p
 for (int i = p * 2; i <= m; i += p)
 prime[i] = false;
 }
 }
 for (int p = l; p <= m; p++)
 if (prime[p])
 number++;
 cout << \"There are \" << number << \" prime numbers between \" << l << \" and \" << m <<\":\"; // Print all prime numbers
 for (int p = l; p <= m; p++)
 if (prime[p])
 cout << p << \" \";
 cout << endl;
 }
 int main()
 {
 //put values of l for lower bound and m for higher bound
 int l=40,m=66;
 
 bool check = false;
 string user;
do {
cout << \"lower bound is: \"<<l<<\" and upper bound is: \" << m<<endl;
//allocate static boolean array prime with size m+1. //
 static bool *prime = new bool[m + 1];
 memset(prime, true, m + 1);
 run_game(prime, l, m);
 cout<<endl;
 cout << \"Do you want to continue or not? Please answer yes or no and hit enter:\";
 cin >> user;
 if (user == \"yes\")
 {
 check = true;
 }
 else if (user == \"no\")
 break;
 else
 continue;
 } while (check == true);
 return 0;
 }
========================
output sample for l=44 and m=66
lower bound is: 40 and upper bound is: 66
 There are 6 prime numbers between 40 and 66:41 43 47 53 59 61
Do you want to continue or not? Please answer yes or no and hit enter:
-----------------------
output sample for l=12 and m=20
lower bound is: 12 and upper bound is: 20
 There are 3 prime numbers between 12 and 20:13 17 19
Do you want to continue or not? Please answer yes or no and hit enter:
---------------------------------------------------------------------------------------------
If you have any query, please feel free to ask.
Thanks a lot.



