Cod sursa(job #972213)
| Utilizator | Data | 11 iulie 2013 11:54:40 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <fstream>
#define Total 500000000
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long i,mj,s,d,y,k,p5[13];
long zero()
{
long r=0,j=0;
for(j=1;j<=12;j++)
r=r+mj/p5[j];
return r;
}
void puteri()
{
p5[0]=1;
for(i=1;i<=12;i++)
p5[i]=p5[i-1]*5;
}
int main()
{
puteri();
fin>>k;
s=1,d=Total;
while(s<=d)
{
mj=(d+s)/2;
y=zero();
if(y>k) d=mj-1;
else
if(y<k) s=mj+1;
else
{
fout<<mj-mj%5<<'\n';
return 0;
}
}
fout<<-1<<'\n';
return 0;
}
