Pagini recente » Cod sursa (job #2527755) | Cod sursa (job #1351665) | Cod sursa (job #1080237) | Cod sursa (job #305146) | Cod sursa (job #896440)
Cod sursa(job #896440)
#include<cstdio>
const int N=1000001,D=8;
int ciur[N],p[N];//nrmax[N];
void prec(){
int i,j,k=0;
p[0]=1;
for(i=2;i*i<=N;i++)
if(!ciur[i]){
p[k+1]=p[k]*i;
k++;
for(j=i;j<N;j+=i)
ciur[j]++;
}
}
/*void maxs(){
for(i=1;i<N;i++){
sd[d[i]][i] = 1;
for(int j=0 ; j<D ; j++)
sd[j][i] += sd[j][i-1];
}
}*/
int main(){
int k,t,i,j,n;
freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
prec();
// maxs();
scanf("%d",&t);
for(i=1;i<=t;i++){
scanf("%d%d",&n,&k);
if(k>=D || p[k]>n)
printf("0\n");
else
for(j=n;j>=1;j--)
if(ciur[j]==k){
printf("%d\n",j);
break;
}
}
return 0;
}