Prime visits problem

#include
using namespace std;

    void sieve(int *p,int b){

       for(int i=3;i<=b;i += 2){
               p[i] =1;
                   }

   for(int i=3;i<=b;i+= 2){
       for(int j =i*i;j<=b;j += 2*i){
            p[j] = 0;
       }
   }
    }

void prime(int *p,int a,int b){

       sieve(p,b);
     int count = 0;
    for(int i=a;i<=b;i++){
        if(p[i] == 1){
           count++;
        }
    }
    cout<<count<<endl;

   return ;

}

int main(){
int t;
cin>>t;
int p[100000];
p[0] = 0,p[1] = 0,p[2] = 1;

 while(t--){
    int a,b;
    cin>>a>>b;
     prime(p,a,b);
 }

 return 0;

}
i m getting run time error please correct my code

@karthik1989photos use long long everywhere