Cod sursa(job #1959226)
| Utilizator | Data | 9 aprilie 2017 11:17:49 | |
|---|---|---|---|
| Problema | Factorial | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int zero(int x)
{
int p=5;
int s=0;
while(p<=x)
{
s=s+x/p;
p=p*5;
}
return s;
}
int main()
{
fin>>p;
if(p==0)
{
fout<<1;
return 0;
}
int st=1;
int dr=100000000;
int mini=dr,z;
while(st<=dr)
{
int mijl=(st+dr)/2;
z=zero(mijl);
if(z>=p)
{
if(z==p && mijl<mini)
mini=mijl;
else
dr=mijl-1;
}
else
st=mijl+1;
}
fout<<mini;
return 0;
}
