Cod sursa(job #2379093)
Utilizator | Dobrita Gabriel GabyD002 | Data | 12 martie 2019 21:17:30 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p;
ll fact(ll n)
{ ll nrz=0;
ll d=5;
while(d<=n)
{ nrz+=n/d;
d*=5;
}
return nrz;
}
int main()
{ f>>p;
ll st=1;
ll dr=(ll)(1<<30)*(1<<30);
ll sol=-1;
while(st<=dr)
{ ll mij=(st+dr)/2;
//g<<mij<<'\n';
if(fact(mij)==p)
{ sol=mij;
dr=mij-1;
}
else
if(fact(mij)<p) st=mij+1;
else dr=mij-1;
}
g<<sol;
}