Cod sursa(job #2248601)

Utilizator MaraPMara P MaraP Data 29 septembrie 2018 13:03:19
Problema Divizori Primi Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>

using namespace std;
FILE* FIN=freopen("divprim.in","r",stdin);
FILE* FOUT=freopen("divprim.out","w",stdout);

int v[1000000]={0};

void eratostene()
{
    int i,j;
    for(j=2;j<1000000;j+=2)
        v[j]++;
    for(i=3;i<1000000;i+=2)
        if(!v[i])
            for(j=i;j<1000000;j+=i)
                v[j]++;
}
void af(int n,int k)
{
    int i;
    for(i=n;i>0;i--)
        if(v[i]==k)
        {
            printf("%d\n",i);
            return;
        }
    printf("0\n");
}
int main()
{
    eratostene();
    int n,i,x,y;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d%d",&x,&y);
        af(x,y);
    }
    return 0;
}