#include <iostream>
#include <cmath>
#define MAX 1000000
//78498
using namespace std;

bool prime[MAX+1];
int data[78499];

int count(int p, int m){
  int tmp=0;
  int d, u;
  d=p-m;
  if(d<0) d=0;
  u=p+m;
  if(u>MAX) u=MAX;
  /*for(int i=d;i<=u;i++){
    if(prime[i]) tmp++;
    }*/
  int i;
  for(i=0;;i++){
    if(data[i]==-1) break;
    if(data[i]>=d) break;
  }
  for(;;i++){
    if(data[i]==-1) break;
    if(data[i]>u) break;
    tmp++;
  }
  if(tmp==0){
    return -1;
  }else{
    return tmp-1;
  }
}

void eratos(){
  int n=MAX;
  for(int i=0;i<=n;i++) prime[i]=false;
  for(int i=3;i<=n;i+=2) prime[i]=true;
  prime[2]=true;
  int limit=(int)sqrt((double)n)+1;
  for(int i=3;i<=limit;i+=2){
    if(!prime[i]) continue;
    for(int j=i+i;j<=n;j+=i)
      prime[j]=false;
  }
}

main(){
  int n;
  eratos();
  data[0]=2;
  for(int i=3, j=1;i<=MAX;i+=2){
    if(prime[i]){
      data[j++]=i;
    }
  }
  data[78498]=-1;
  while(1){
    cin >> n;
    if(n==0) break;
    int ans=0;
    for(int i=0;i<n;i++){
      int p, m;
      cin >> p >> m;
      ans+=count(p, m);
    }
    cout << ans << endl;
  }
  return 0;
}