Cod sursa(job #1753432)

Utilizator cosmin.pascaruPascaru Cosmin cosmin.pascaru Data 6 septembrie 2016 15:41:37
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>

#define NMAX 1000000
using namespace std;

int m[8][NMAX + 5];
int nr_divs[NMAX + 5];

void precompute(){
    m[0][1] = 1;
    for (int i = 2; i <= NMAX; ++i){
        if (!nr_divs[i]){
            for (int j = i; j <= NMAX; j += i)
                ++nr_divs[j];
        }
        for (int j = 0; j < 8; ++j){
            m[j][i] = m[j][i - 1];
        }
        m[nr_divs[i]][i] = i;
    }
}

int main()
{
    #define USE_FILES
    #ifdef USE_FILES
    ifstream fin("divprim.in");
    ofstream fout("divprim.out");

    #define cin fin
    #define cout fout
    #endif // USE_FILES

    precompute();

    int t;
    cin >> t;

    for (int i = 0; i < t; ++i){
        int n, k;
        cin >> n >> k;

        cout << m[k][n] << '\n';
    }


    return 0;
}