Cod sursa(job #1037239)
Utilizator | Data | 19 noiembrie 2013 23:35:35 | |
---|---|---|---|
Problema | Factorial | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<fstream>
#define numaru (1<<31-1)
using namespace std;
int verif(long long n)
{
int s=0,o=1;
while(o<=n)
s+=(n/(o*=5));
return s;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
int p;
long long k,q,w,e;
f>>p;
if(p==0) k=1;
else
{
q=5; w=numaru;
while(true)
{
k=(q+w)>>1;
e=verif(k);
if(e==p) break;
else if(e<p) q=k;
else w=k;
}
}
g<<k/5*5<<"\n";
f.close();
g.close();
return 0;
}