只有当a为奇数,且n>a时情况较复杂,此时不能第a+1项直接从a+1开始输出,因为第a项a-1为偶数,a+1也为偶数,要找到一个与a-1互质的最小数r,第a+1项即为a-1+r,第a+2项为a+1,这样一直到a+r-1项为a+r-1,若n仍大于a+r-1,就类似上述过程找与a+r-1互质的最小数。
#include<bits///stdc++.h>
using namespace std;
int Euclid_algorithm(int m,int n)
{
    int temp;
    while(m%n>0)
    {
        temp=n;
        n=m%n;
        m=temp;
    }
    return n;
}
int getprime(int x)
{
int i=3;
while(x%i==0||Euclid_algorithm(x,i)!=1) i+=2;
return i;    
}
int main()
{
    int t,n,a;
    cin>>t;
    for(int i=0;i<t;i++) 
    {
        cin>>a>>n;
        if(n==1) cout<<a<<endl;
        else if(a==1) cout<<n<<endl;
        else if(a%2==0)
        { 
            if(n<=a) cout<<n-1<<endl;
            else cout<<n<<endl;
        }
        else
        {
            if(n<=a) cout<<n-1<<endl;
            else
            {
                  int k=n-a;
                int q=a-1;
                int p=getprime(q);
                while(k>=p)
                {    
                    q=q+p-1;
                    k=k-p+1;
                    p=getprime(q);
                }
                if(k==1) cout<<q+p<<endl;
                else cout<<q+k<<endl;
            }
        }
    }
    
    
    return 0;
}