Pagini recente » Cod sursa (job #1552890) | Cod sursa (job #520933) | Cod sursa (job #628748) | Cod sursa (job #2057553) | Cod sursa (job #1414514)
#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, j,n,k,i;
ciuruire();
for(i=1;i<=7;i++)
for(j=1;j<=1000000;j++)
{
if(ciur[j]==i)
a[i][j]=j;
else a[i][j]=a[i][j-1];
}
scanf("%d", &t);
for(i=1;i<=t;i++)
{
scanf("%d%d", &n, &k);
if(n==0||n==1)
printf("0\n");
else if(k==0){
printf("1\n");}
else printf("%d\n", a[k][n]);
}
return 0;
}