Pagini recente » Istoria paginii utilizator/hordiana1 | Statistici Rus Alina (rusalina) | Istoria paginii runda/com2009/clasament | Cod sursa (job #2013098) | Cod sursa (job #2631189)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("divprim.in");
ofstream fout ("divprim.out");
const int N = 1e6;
int t, n, k, nrp[N + 2], dp[N + 2][8];
void ciur () {
for (int i = 2; i <= N; i++)
if (!nrp[i])
for (int j = i; j <= N; j += i)
nrp[j]++;
}
void precalc () {
for (int i = 1; i <= N; i++)
dp[i][nrp[i]] = i;
for (int i = 1; i <= N; i++)
for (int j = 0; j <= 7; j++)
if (!dp[i][j])
dp[i][j] = dp[i - 1][j];
}
int main()
{
ciur();
precalc();
fin >> t;
while (t--) {
fin >> n >> k;
fout << dp[n][k] << "\n";
}
return 0;
}