Pagini recente » Cod sursa (job #239990) | Cod sursa (job #2338766) | Cod sursa (job #2655053) | Cod sursa (job #974641) | Cod sursa (job #1414503)
#include <iostream>
#include<cstdio>
using namespace std;
int ciur[1000010];
void ciuruire()
{
int i, j,prim=2;
while(prim*prim<=1000000)
{
for(i=2;i<=1000000/prim;i++)
ciur[i*prim]++;
ciur[prim]++;
prim++;
while(ciur[prim]!=0)
prim++;
}
}
int a[8][1000010];
void marcare(int k)
{
int i;
for(i=1;i<=1000000;i++)
{
if(ciur[i]!=k)
a[k][i]=a[k][i-1];
else a[k][i]=i;
}
}
int main()
{
freopen("divprim.in", "r",stdin);
freopen("divprim.out","w",stdout);
int t, n,k,i;
ciuruire();
for(i=1;i<=7;i++)
marcare(i);
scanf("%d", &t);
for(i=1;i<=t;i++)
{
scanf("%d%d", &n, &k);
if(n==0||n==1)
printf("0\n");
else printf("%d\n", a[k][n]);
}
return 0;
}