Cod sursa(job #518250)
Utilizator | Z.Z.Daniel blastoise | Data | 30 decembrie 2010 21:39:24 |
---|---|---|---|
Problema | Divizori Primi | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
#define max 1000000
#define D 1000001
int T,N,K,i,j;
int p[D],Mat[D][8];
int main()
{
freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
for(i=2;i<=max;i++)
if(p[i]==0)
for(j=i;j<=max;j+=i)
p[j]++;
for(i=2;i<=max;i++)
{
for(j=0;j<8;j++)
Mat[i][j]=Mat[i-1][j];
Mat[i][p[i]]=i;
}
scanf("%d",&T);
for(i=1;i<=T;i++)
{
scanf("%d%d",&N,&K);
printf("%d\n",Mat[N][K]);
}
return 0;
}