Cod sursa(job #640594)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 26 noiembrie 2011 00:35:42
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>

const unsigned int X(1000001);
const unsigned char Y(8);
unsigned int divprimi[X],s[X][Y];

int main (void)
{
    unsigned int i(2),j,aux(1);
    while (i < X)
    {
        if (!divprimi[i])
            for (j = i ; j < X ; j += i)
                ++divprimi[j];
        for (j = 1 ; j < Y ; ++j)
            s[i][j] = s[aux][j];
        s[i][divprimi[i]] = i;
        ++i;
        ++aux;
    }
    std::freopen("divprim.in","r",stdin);
    std::freopen("divprim.out","w",stdout);
    std::scanf("%d",&aux);
    while (aux)
    {
        std::scanf("%d%d",&i,&j);
        std::printf("%d\n",s[i][j]);
        --aux;
    }
    std::fclose(stdin);
    std::fclose(stdout);
    return 0;
}