Cod sursa(job #234232)
| Utilizator | Data | 20 decembrie 2008 13:31:31 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<fstream>
#include<iostream>
unsigned long p,p1,n1,nd5,p2,i;
long n;
fstream f;
int main(){
f.open("fact.in",ios::in);
f>>p;
f.close();
if(p==0)
n=1;
else{
nd5=1;
n=0;
p1=0;
while(p1+nd5<p){
p1=p1+nd5;
nd5=nd5*5;
}
n=nd5;
n1=n;
p2=p1;
while(p2>0){
for(i=1;i<=4;i++)
if(p1+p2<=p){
p1=p1+p2;
n=n+n1;
}
nd5=nd5/5;
n1=nd5;
p2=p2-nd5;
}
if(p1!=p)
n=-1;
}
f.open("fact.out",ios::out);
f<<n;
f.close();
return 0;
}
