Cod sursa(job #2178413)
Utilizator | Macovei Rares-Stefan RaresMacovei | Data | 19 martie 2018 14:21:20 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p,n=1220703125;
int nr0(int n)
{
int x=0;
while(n)
x+=n/5,n/=5;
return x;
}
int cauta(int p)
{
int s=1, d=n, m, N=-1;
while(s<=d)
{
m=(s+d)/2;
if(nr0(m)>=p)N=m, d=m-1;
else s=m+1;
}
return N;
}
int main()
{
fin>>p;
int n=cauta(p);
if(nr0(n)==p)
fout<<n;
else fout<<-1;
return 0;
}