Pagini recente » Cod sursa (job #1742975) | Cod sursa (job #3272406) | Cod sursa (job #2943425) | Cod sursa (job #2388130) | Cod sursa (job #2854721)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("divprim.in");
ofstream cout("divprim.out");
#define DIM 1e6
int n;
vector<pair<int,int>> v;
vector<int> ciur;
vector<vector<int>> ma(8);
void read(){
cin>>n;
v.resize(n+1);
for(int i=1;i<=n;i++){
cin>>v[i].first>>v[i].second;
}
}
void buildMa(){
for(int i=1;i<8;i++){
ma[i].push_back(1);
}
ciur.resize(DIM);
ciur[1]=0;
for(int i=2;i<=DIM;i++){
if(ciur[i]==0){
for(int j=i;j<=DIM;j+=i){
ciur[j]++;
}
}
if(ciur[i]<=7){
ma[ciur[i]].push_back(i);
}
}
}
void solve(){
buildMa();
// for(int i=1;i<=7;i++){
// cout<<i<<" : ";
// for(int j=1;j<ma[i].size();j++){
// cout<<ma[i][j]<<" ";
// }
// cout<<"\n";
// }
// return;
for(int i=1;i<=n;i++){
int l=1,r=ma[v[i].second].size()-1,mid=0,sol=0;
while(l<=r){
mid=l+(r-l)/2;
if(ma[v[i].second][mid]<v[i].first){
sol=ma[v[i].second][mid];
l=mid+1;
}
else if(ma[v[i].second][mid]>=v[i].first){
r=mid-1;
}
}
cout<<sol<<"\n";
}
}
int main(){
read();
solve();
return 0;
}