Cod sursa(job #1909061)

Utilizator raisacmtAxenie Raisa raisacmt Data 7 martie 2017 11:32:28
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>

using namespace std;
int c[1000005];
int a[8][1000005];
int main()
{
    freopen("divprim.in","r",stdin);
    freopen("divprim.out","w",stdout);
    int m,n,i,j,u,k;
    scanf("%d",&m);
    for(i=2; i<=1000000; i+=2)
        c[i]++;
    for(i=3; i<=1000000; i+=2)
        if(!c[i])
        for(j=i; j<=1000000; j+=i)
            c[j]++;
        for(i=1; i<=1000000; i++)
            a[c[i]][i]=1;
        u=0;n=1000000;
        for(i=1; i<=7; i++)
        {
            u=0;
            for(j=1; j<=n; j++)
            {
                if(a[i][j]==1)
                    u=a[i][j]=j;
                else
                    a[i][j]=u;
            }
        }
    for(j=1; j<=m; j++)
    {
        scanf("%d%d",&n,&k);
        if(k==0)
            printf("1");
        else
        printf("%d\n",a[k][n]);
    }
    return 0;
}