Pagini recente » Cod sursa (job #3233930) | Cod sursa (job #2977811) | Cod sursa (job #1901702) | Cod sursa (job #888401) | Cod sursa (job #3212383)
#include <bits/stdc++.h>
using namespace std;
vector <pair<int, int>> puteri;
bool ok( int e ){
for( auto x : puteri ){
int cnt = 0;
int put = x.first;
while( put <= e ){
cnt += e/put;
put *= x.first;
}
if( cnt < x.second )
return 0;
}
return 1;
}
int main()
{
int n, q;
cin >> n >> q;
for( int d = 2; d * d <= n; d++ ){
int cnt = 0;
while( n % d == 0 ){
n /= d;
cnt++;
}
if( cnt )
puteri.push_back({d, cnt*q});
}
if( n > 1 )
puteri.push_back({n, q});
int st = 1, dr = 2e9, sol;
while( st <= dr ){
int mij = (st+dr)/2;
if( ok(mij) ){
sol = mij;
dr = mij - 1;
}
else
st = mij+1;
}
cout << sol;
return 0;
}