I have tried making my own test cases but I’m still getting wrong answer. What am I doing wrong?
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
vector<int> basePrimes;
bool primesList [1000000001];
int inputValues [22];
int main() {
int t;
cin >> t;
bool base [32624];
for(int i = 2; i < sizeof(base); i++) {
if(!base[i]) {
basePrimes.push_back(i);
for(int j = i * 2; j < sizeof(base); j += i)
base[j] = true;
}
}
for(int i = 0; i < t; i++) {
int m, n;
cin >> m >> n;
if(m < 2) m = 2;
inputValues[i * 2] = m;
inputValues[i * 2 + 1] = n;
for(int j = 0; j < basePrimes.size(); j++) {
int compare = basePrimes.at(j);
int start = ((int) (m / compare)) * compare;
if(start < m || start == compare) start += compare;
if(start < m || start == compare) start += compare;
for(int k = start; k <= n; k += compare) {
if(!primesList[k]) primesList[k] = true;
}
}
}
for(int i = 0; i < t; i++) {
for(int j = inputValues[i * 2]; j <= inputValues[i * 2 + 1]; j++) {
if(!primesList[j]) printf("%i\n", j);
}
if(i < t - 1) cout << endl;
}
}
Any help would be appreciated. Thanks.