Cod sursa(job #719557)
| Utilizator | Data | 21 martie 2012 21:11:19 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include<fstream>
using namespace std;
ifstream q("fact.in");
ofstream w("fact.out");
const int lim = 100000000, lim2= 134217728;
int main()
{
long i=0,l,P;
q>>P;
if(P==0)
{
w<<1;
return 0;
}
for(int sum = lim2; sum; sum=sum>>1)
if(sum+i<=lim)
{
long t=0;
for(int k=5; k<=5*(i+sum); k=k*5)
t=t+(5*(i+sum))/k;
if(t<=P)
{
i+=sum;
l=t;
}
}
if(l==P)
w<<5*i;
else
w<<-1;
return 0;
}
