Pagini recente » Cod sursa (job #1282336) | Cod sursa (job #2334764) | Cod sursa (job #1104774) | Cod sursa (job #2433705) | Cod sursa (job #2613285)
#include <fstream>
using namespace std;
ifstream f("frac.in");
ofstream g ("frac.out");
long long c[51],k,n,p,pr=1,in=1,fin=1LL<<61,m=(in+fin)/2,r=m;;
int main(){
f>>n>>p;
for(int i=2; i*i<=n; ++i)
if(n%i==0){
while(n%i==0)n/=i;
c[++k]=i;
}
if(n!=1) c[++k]=n;
while(in<=fin){
for(int i=1; i<(1<<k); ++i){
pr=1;
for(int j=0; j<=k; ++j)
if(((1<<j) & i)>0)
pr*=-c[j+1];
r+=m/pr;
}
if(r<p)in=m+1;
else fin=m-1;
}
g<<in;
return 0;
}