Cod sursa(job #1938445)

Utilizator rares00Foica Rares rares00 Data 24 martie 2017 20:16:29
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda alianta_001 Marime 0.8 kb
#include <iostream>
#include <fstream>
#define LN 1000000
using namespace std;
ifstream in("divprim.in");
ofstream out("divprim.out");

int t,k,n;
int nrdiv[LN+2];
int sol[LN+2][8];

int mx;

void preprocDiv()
{
    for(int i=2;i<=LN;++i)
    {
        if(nrdiv[i]==0)
        {
            for(int j=i;j<=LN;j+=i)
                nrdiv[j]++;
        }
    }

    for(int i=1;i<=LN;++i)
    {
        for(int j=0;j<=7;++j)
            sol[i][j]=sol[i-1][j];
        sol[i][nrdiv[i-1]]=i-1;
    }
}

int main()
{
    preprocDiv();
    /*for(int i=1;i<=LN;++i)
        out<<i<<" ";
    out<<"\n";
    for(int i=1;i<=LN;++i)
        out<<nrdiv[i]<<" ";*/
    in>>t;
    for(int q=1;q<=t;++q)
    {
        in>>n>>k;
        out<<sol[n][k]<<"\n";
    }

    return 0;
}