#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

#define N 1000000

int main(void){
	vector<bool> isprime(N+1);
	for(int i=0;i<isprime.size();i++) isprime[i]=true;
	int upto = (int)sqrt(isprime.size());
	isprime[0]=isprime[1]=false;
	for(int i=2;i<=upto;++i){
		if(isprime[i]){//消されてなければその倍数を消す
			for(int j=2;i*j<isprime.size();++j) isprime[i*j] = false;
		}
	}
	vector<int> s(N+1,0);
	for(int i=0;i<N;++i) s[i+1]+=s[i]+((isprime[i+1])?1:0);
	int n;
	while(cin>>n,n){
		int ans=0;
		for(int i=0,p,m,x=0;i<n;++i){
			cin>>p>>m;
			x=s[(p+m>N)?N:p+m]-s[(p-m<0)?0:p-m]+isprime[(p-m<0)?0:p-m];
			ans+=x-1;
		}
		cout<<ans<<endl;
	}
	return 0;
}