Cod sursa(job #863475)
| Utilizator | Data | 23 ianuarie 2013 20:46:40 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream fin ("factorial.in");
ofstream fout ("factorial.out");
int p,i,j,m,k,u,s,d,v[15];
int main () {
fin>>p;
v[0]=1;
for (i=5;i<=p*5;i=i*5)
v[++d]=i;
v[++d]=2000000000;
k=1;
u=p*5;
while (k<=u) {
m=(k+u)/2;
s=0;
for (j=1;v[j]<=m;j++)
s=s+m/v[j];
if (s>=p)
u=m-1;
else
k=m+1;
}
s=0;
for (j=1;v[j]<=k;j++)
s=s+k/v[j];
if (s==p)
fout<<k<<"\n";
else
if (p==0)
fout<<v[0];
else
fout<<-1<<"\n";
return 0;
}
