Pagini recente » Cod sursa (job #682957) | Borderou de evaluare (job #5568) | Cod sursa (job #2211882) | Cod sursa (job #114738)
Cod sursa(job #114738)
#include<stdio.h>
#define LMAX 1000001
int div[LMAX+1],k; long t,n,i,j,sol[LMAX+1][8];
void generare()
{while(2*j<=1000000) {div[2*j]++;j++;}
for(i=3;i<=1000000;i+=2)
{
if (div[i]==0)
{
j=1;
while(i*j<=1000000)
{div[i*j]++;
j++;}
}
}
for(i=1;i<=7;i++)
for(j=2;j<=LMAX;j++)
{if(sol[j][i]==0)
{sol[j][i]=sol[j-1][i];
sol[j][div[j]]=j;}}
for(j=1;j<=LMAX;j++) sol[j][0]=1;
}
main()
{freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
generare();
scanf("%ld",&t);
for(i=1;i<=t;i++)
{scanf("%ld %d",&n,&k);
printf("%ld\n",sol[n][k]);}
}