Pagini recente » Cod sursa (job #2506409) | Cod sursa (job #2707804) | Cod sursa (job #2963675) | Cod sursa (job #2839588) | Cod sursa (job #1968252)
#include <fstream>
using namespace std;
int a[8][100001],v[100001],k[100001],lun[8];
int main()
{ int n,i,st,mij,dr,nr,div,Max=0;
bool ok;
ifstream f("divprim.in");
ofstream g("divprim.out");
f>>n;
for (i=1;i<=n;++i) {
f>>v[i]>>k[i];
Max=max(Max,v[i]);
}
for (i=1;i<=Max;++i) {
div=2;
mij=i;
nr=0;
ok=1;
while (mij>1) {
if (mij%div==0) {
++nr;
while (mij%div==0)
mij/=div;
}
++div;
if (nr>7) {
ok=0;
break;
}
}
if (ok) {
++lun[nr];
a[nr][lun[nr]]=i;
}
}
for (i=1;i<=n;++i) {
st=1,dr=lun[k[i]];
Max=0;
while (st<=dr) {
mij=(st+dr)/2;
if (a[k[i]][mij]<=v[i]) {
Max=max(Max,a[k[i]][mij]);
st=mij+1;
}
else dr=mij-1;
}
g<<Max<<"\n";
}
return 0;
}