Cod sursa(job #384199)
Utilizator | Finaru Andrei Emanuel andrei.finaru | Data | 19 ianuarie 2010 17:19:31 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.41 kb |
#include<fstream.h>
#include<math.h>
ifstream f("fact.in");
ofstream g("fact.out");
long long n,p,i,t,s,d,gasit,z;
int main()
{
f>>p;
gasit=0;s=1;d=2147483647;
while(s<=d&&gasit==0)
{n=(s+d)/2;i=1;z=0;
while(pow(5,i)<=n)
{t=pow(5,i);
z=z+n/t;
i++;}g<<z<<'\n';
if(z==p) gasit=1;
else if(z<p) s=n+1;
else d=n-1;}
if(gasit==1) g<<n;
else g<<"-1";
f.close(); g.close();
return 0;
}