Pagini recente » Cod sursa (job #513169) | Cod sursa (job #1190802) | Cod sursa (job #348680) | Cod sursa (job #900987) | Cod sursa (job #76222)
Cod sursa(job #76222)
#include<stdio.h>
#define N 1000000
int t,n,k,p[N],nrp[N],sol[1][100000];
//p[i] == 0 if i is prime
void ciur(int n)
{
int i,j;
p[2]=0;
for (i=2;i<=n;i++)
if (p[i]==0)
for (j=i+i;j<=n;j+=i)
p[j]=1;
}
void upvec(int n)
{
int i,j;
for(i=2;i<=n;i++)
if(p[i]==0)
{
nrp[i]++;
for(j=i+i;j<=n;j+=i)
nrp[j]++;
}
}
void read_solve()
{
int i1,i,j;
scanf("%d",&t);
ciur(N);
upvec(N);
for(i1=0;i1<t;i1++)
{
scanf("%d%d",&n,&k);
/*ok=1;
for(i=n-1;i>=1&&ok;i--)
if(nrp[i]==k)
{
printf("%d\n",i);
ok=0;
}
if(ok)
printf("0\n");*/
//for(i=3;i<=n;i++)
for(j=1;j<=n;j++)
sol[1][nrp[j]]=j;
/*for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
printf("%d ",sol[i][j]);
printf("\n");
}*/
printf("%d\n",sol[1][k]);
}
}
int main()
{
freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
read_solve();
return 0;
}