Pagini recente » Cod sursa (job #1197592) | Cod sursa (job #736420) | Cod sursa (job #1110933) | Monitorul de evaluare | Cod sursa (job #1753432)
#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;
}