Cod sursa(job #1856114)
| Utilizator | Data | 24 ianuarie 2017 15:39:10 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p,n;
int nr(long long q)
{
long long s=0,p=5;
while(p<=q)
{
s+=(q/p);
p*=5;
}
return s;
}
long long cauta(long long st,long long dr)
{
long long mj,nr0;
if(st<=dr)
{
mj=(st+dr)/2;
nr0=nr(mj);
if(nr0<p) return cauta(mj+1,dr);
if(nr0>p) return cauta(st,mj-1);
return mj-(mj%5);
}
return -1;
}
int main()
{
fin>>p;
if(p==0)
fout<<1;
else{
n=cauta(1,1000000000);
fout<<n;
}
return 0;
}
