Cod sursa(job #2613285)
Utilizator | Swan Katherine Katherine456719 | Data | 9 mai 2020 15:29:23 |
---|---|---|---|
Problema | Frac | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#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;
}