Prateek loves candy

#include
#include
using namespace std;
void sievePrime(int *primes)
{
primes[0] = primes[1] = 0;

for (int i = 2; i * i < 100000; i++) {

	if (primes[i] == 1) {
		for (int j = i * i; j < 100000; j += i) {
			primes[j] = 0;
		}
	}
}

}
int main() {

int primes[100000];
vector<int>prime;
prime.clear();
for (int i = 0; i < 100000; i++) primes[i] = 1;
sievePrime(primes);

for (int i = 0; i < 100000; i++)
{
	if (primes[i] == 1)
		prime.push_back(i);
}
int T;
cin>>T;
while(T--){
	int n;
	cin>>n;
	cout<<prime[n-1]<<endl;
		
	}


return 0;

}
for one test case i am getting RE

@dare_devil_007 increase the size as ans can be max 1e6


i hope its clear if yes dont forget to mark the doubt resolved :smiley:

thanks a lot man!!
i have one more doubt related to divisible subarrays
int cumSum = 0;
for (int i = 0; i < n; i++) {
cumSum += arr[i];

    // as the sum can be negative, taking modulo twice 
    mod[((cumSum % k) + k) % k]++; 
} 

i am not able to understand line where we r dealing with negative numbers?
let’s say cumSum = -2;
((cumSum%k)+k)%k
((-2%5)+5)%5
((-2)+5)%5
(3%5) = 3

then how come it be 2

@dare_devil_007 its coming out to be 3 in my compiler
also -2%5 is 3

Yeah 2%5= 2 right so how come -2%5 is 3??

@dare_devil_007 -2 mein kitna plus kare neg mein hi jo %5 0 aajaye so -2-3 = -5 so ans 3(neg modulo works like this. othe example -6%5 = 4 (-6-4=-10)