Cod sursa(job #51466)
#include<fstream.h>
int main(){
ifstream fin("divprim.in");
ofstream fout("divprim.out");
long T;
fin>>T;
for (long w=0;w<T;w++){
long N,K,i=1,a[5000];
short ok=1;
long z;
fin>>N>>K;
long M=N;
a[0]=2;
if (N%2==0)
M=N-1;
for (long h=3;h<=M;h+=2){
ok=1;
for (z=3;z<h;z+=2)
if (h%z==0){
ok=0;
break;}
if (ok==1)
a[i++]=z; }
ok=1;
long nr=0;
long s=0;
for (long y=N-1;y>1;y--){
ok=1;
nr=0;
long j=0;
while (a[j]<=y){
if (y%a[j]==0)
nr++;
j++;}
if (nr==K){
s=y;
break;} }
fout<<s<<"\n";
}
fin.close();
fout.close();
return 0;
}