Cod sursa(job #236193)
Utilizator | Data | 26 decembrie 2008 22:01:03 | |
---|---|---|---|
Problema | Divizori Primi | Scor | 75 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<stdio.h>
#define N 1000001
int n,t,kdiv[N],k,i,j,sol[N][9];
void ciur()
{ for(i=2;i*i<=N;i++)
if(!kdiv[i])
{ kdiv[i]++;
j=2;
while(i*j<=N)
{ kdiv[i*j]++;
j++;
}
}
}
int main()
{ freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
ciur();
for(i=1;i<N;i++)
{ for(j=1;j<=8;j++)
sol[i][j]=sol[i-1][j];
sol[i][kdiv[i]]=i;
}
scanf("%d",&t);
for(j=1;j<=t;j++)
{ scanf("%d%d",&n,&k);
printf("%d\n",sol[n][k]);
}
return 0;
}