Cod sursa(job #367553)
Utilizator | Data | 22 noiembrie 2009 17:45:40 | |
---|---|---|---|
Problema | Factorial | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include<fstream.h>
int cinci(int x)
{
long p=0;
while(x>=5)
p+=x/5,x/=5;
return p;
}
int main()
{
long p,x,q;int ok=1;
ifstream in("fact.in");
ofstream out("fact.out");
in>>p;
long z=p;
for(long i=5;;i*=5)
{
q=p/i;if(q==0) break;
while(q)
if((p+q)%i!=0||ok==0) p--,q--,ok=1;
else q--,ok=0;
}
x=p*5;
if(x==0) x=1;
if(z!=cinci(x)) out<<-1;
else out<<x;
return 0;
}