Pagini recente » Clasamentul arhivei de probleme | Clasamentul arhivei de probleme | Cei mai harnici utilizatori infoarena | Cod sursa (job #1613878) | Cod sursa (job #2027457)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("divprim.in");
ofstream fout("divprim.out");
const int Nmax = 1000000;
long long t, n, k, i, j, nr[Nmax+5];
bool ok, v[Nmax+5];
void ciur()
{
v[0] = 1;
v[1] = 1;
for(i=2; i<=Nmax; i++)
if(!v[i])
{
nr[i] = 1;
for(j=2; i*j<=Nmax; j++)
{
v[i*j] = 1;
nr[i*j]++;
}
}
}
int main()
{
fin >> t;
ciur();
for(i=1; i<=t; i++)
{
fin >> n >> k;
ok = 0;
while(nr[n]!=k && n>0)
n--;
fout << n << "\n";
}
fin.close();
fout.close();
return 0;
}