Pagini recente » Istoria paginii runda/shimulare | Cod sursa (job #2187966) | Istoria paginii utilizator/annalipianu | Cod sursa (job #2022604) | Cod sursa (job #3136754)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("divprim.in");
ofstream fout ("divprim.out");
int i,o,t,k,mij,j,n,st,dr,ciur[1000001];
vector <int> l[8];
int main()
{
for (i=2; i<=1000000; i++)
{
if (ciur[i]==0)
{
ciur[i]=1;
for (j=i+i; j<=1000000; j+=i)
ciur[j]++;
}
}
l[0].push_back (1);
for (i=2; i<=1000000; i++)
{
if (ciur[i]<=7)
l[ciur[i]].push_back (i);
}
fin>>t;
for (o=1; o<=t; o++)
{
fin>>n>>k;
st=0;
dr=l[k].size ()-1;
while (st<=dr)
{
mij=(st+dr)/2;
if (l[k][mij]<=n)
st=mij+1;
else
dr=mij-1;
}
if (l[k][dr]<=n)
fout<<l[k][dr]<<"\n";
else
fout<<"0\n";
}
return 0;
}