Pagini recente » Cod sursa (job #2274979) | Borderou de evaluare (job #1036669) | Cod sursa (job #333553) | Cod sursa (job #998216) | Cod sursa (job #3041641)
#include <bits/stdc++.h>
using namespace std;
const int CIFMAX=1e6;
int ciur[CIFMAX+1];
int a[8][CIFMAX];
int main()
{
ifstream fin("divprim.in");
ofstream fout("divprim.out");
int t,n,k,i,j,nrdiv,nr,mijl,divprim,st,dr;
fin>>n;
ciur[0]=ciur[1]=1;
for(i=2;i<=CIFMAX;i++){
if(ciur[i]==0){
for(j=i;j<=CIFMAX;j++){
ciur[j]++;
}
}
}
for(i=1;i<=7;i++){
k=1;
for(j=2;j<=CIFMAX;j++){
if(ciur[j]==i){
a[i][k++]=j;
}
}
a[i][0]=k-1;
}
for(i=1;i<=t;i++){
fin>>nr>>divprim;
if(nr==1){
fout<<"0"<<"\n";
}
else{
st=1;
dr=a[divprim][0];
while(st<=dr){
mijl=(st+dr)/2;
if(a[divprim][mijl]<nr){
st=mijl+1;
}
else{
dr=mijl-1;
}
}
fout<<a[divprim][st]<<"\n";
}
}
return 0;
}