Cod sursa(job #236019)

Utilizator c_e_manuEmanuel Cinca c_e_manu Data 26 decembrie 2008 15:52:02
Problema Divizori Primi Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<cstdio>
#define N 10001

int ok[N];
int n,t,kt,kdiv[N],k;

void ciur()
{       int i,j;
        for(i=2;i*i<=N;i++)
                if(ok[i])
                {       j=2;
                        while(i*j<=N)
                        {       ok[i*j]=0;
                                j++;
                        }
                }
}
int main()
{       int i,j;
        freopen("divprim.in","r",stdin);
        freopen("divprim.out","w",stdout);
        for(i=1;i<=N;i++) ok[i]=1;
        ciur();
        for(i=2;i<=N;i++)
        {       for(j=2;j<=i/2;j++)
                        if(ok[j]&&i%j==0) kdiv[i]++;
                if(ok[i]) kdiv[i]++;
        }
        scanf("%d",&t);
        for(kt=1;kt<=t;kt++)
        {       scanf("%d%d",&n,&k);
                for(i=n;i>=2;i--)
                        if(kdiv[i]==k) {printf("%d\n",i);break;}
                if(i<2) printf("0\n");
        }
        return 0;
}