Cod sursa(job #269674)
Utilizator | Data | 3 martie 2009 10:55:31 | |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <iostream.h>
#include <fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
long p,s,k;
int i;
long sk()
{long sum=0, d=5;
while(d<=k) {sum+=k/d; d*=5;}
return sum;
}
int main(void)
{f>>p;
k=p/6;
if(k==0)
if(p==5) g<<-1<<'\n'; else if(p==0) g<<1<<'\n'; else g<<p*5<<'\n';
else
{s=sk();
while(6*k+4+s>p)
{k--;
s=sk();
}
if(p<6*k+s) g<<-1<<'\n';
else g<<(p-s)*5<<'\n';
}
g.close(); f.close(); return 0;
}