Pagini recente » Cod sursa (job #2572050) | Cod sursa (job #1264576) | Cod sursa (job #503953) | Cod sursa (job #1295176) | Cod sursa (job #3174299)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
vector <pair <int,int>> puteri;
int p, q;
int ok(int x)
{
for(pair <int,int>a : puteri)
{
int d = x/a.first;
if(d*(d+1)/2<a.second*q)
return 0;
}
return 1;
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(NULL);
fout.tie(NULL);
fin >> p >> q;
for(int d=2; d*d<=p; d++)
{
int exp = 0;
if(p%d==0)
{
while(p%d==0)
{
exp++;
p/=d;
}
puteri.push_back(make_pair(d,exp));
}
}
if(p!=1)
puteri.push_back(make_pair(p,1));
long long st = 1, dr = INT_MAX;
while(st<=dr)
{
long long mij = (st+dr)/2;
if(ok(mij))
dr = mij-1;
else
st = mij+1;
}
fout << st;
fin.close();
fout.close();
return 0;
}