Cod sursa(job #2660372)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 19 octombrie 2020 08:46:25
Problema Divizori Primi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<bits/stdc++.h>

using namespace std;

ifstream fin("divprim.in");
ofstream fout("divprim.out");

const int NMAX = 1e6;
vector < int > ndp(NMAX + 1);

void Eratostene() {
    for(int i = 2; i <= NMAX; ++i)
        if(ndp[i] == 0)
            for(int j = i; j <= NMAX; j += i)
                ++ndp[j];
}

int main() {
    fin.sync_with_stdio(false);
    fout.sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);
    Eratostene();
    int Q;
    fin >> Q;
    vector < vector < int > > sol(NMAX + 1, vector < int >(8));
    for(int i = 1; i <= NMAX; ++i) {
        for(int j = 0; j <= 7; ++j)
            sol[i][j] = sol[i - 1][j];
        sol[i][ndp[i]] = i;
    }
    while(Q--) {
        int N, K;
        fin >> N >> K;
        fout << sol[N][K] << '\n';
    }
}