Cod sursa(job #114573)
Utilizator | Andrei Popescu pandaemon | Data | 14 decembrie 2007 21:14:20 |
---|---|---|---|
Problema | Divizori Primi | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<stdio.h>
#define LMAX 1000001
int div[LMAX+1],k; long long t,n,i,j,sol[LMAX+1][8];
void generare()
{for(i=2;i<=10000;i++)
if(div[i]==0)
for(j=i;j<=LMAX;j+=i) div[j]++;
for(i=1;i<=7;i++)
for(j=2;j<=LMAX;j++)
if(div[j]==i) sol[j][i]=j;
else sol[j][i]=sol[j-1][i];
}
main()
{freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
generare();
scanf("%lld",&t);
for(i=1;i<=t;i++)
{scanf("%lld %d",&n,&k);
printf("%lld\n",sol[n][k]);}
}