Cod sursa(job #1645741)
| Utilizator | Data | 10 martie 2016 13:34:28 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nr(int n)
{
int p=5,nr=0;
while(p<=n)
{
nr=nr+n/p;
p*=5;
}
return nr;
}
int main()
{
int d,left=1,right=1000000000,mid,k,sol;
fin>>k;
while(left<=right)
{mid=(left+right)/2;
d=nr(mid);
if(d>=k)
{ sol=mid;
right=mid-1;
}
else if(d<k) left=mid+1;
}
if(nr(sol)==k)
fout<<sol;
else
fout<<"-1";
return 0;
}
