Cod sursa(job #93500)
#include<fstream>
using namespace std;
ofstream fout("divprim.out");
long prime[1000001],T,N,K;
void gen_prime() {
prime[1000000] = 1;
for (long d = 3; d < 1000000; d+=2) {
prime[d - 1]++;
if (prime[d] == 0) {
for (long v= 2; v*d < 1000000; v++)
prime[d * v]++;
prime[d]=1;}
}
prime[2] = 1;
}
long adevar (long N,long K){
for (long j=N;j>=0;j--)
if (prime[j]==K)
return j;
return 0;
}
int main(){
gen_prime();
ifstream fin("divprim.in");
fin>>T;
for (long i=0;i<T;i++){
fin>>N>>K;
fout<<adevar(N,K)<<"\n";
}
fout.close();
return 0;
}