Cod sursa(job #2610416)
| Utilizator | Data | 4 mai 2020 20:52:31 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <fstream>
using namespace std;
int nz(int n)
{
if(n<0) return -1;
int k=0,p=5;
while(n/p!=0)
{
k=k+n/p;
p=p*5;
}
return k;
}
int rez(int l, int r, int p)
{
if(l>r) return -1;
if(p==0) return 1;
int m=(l+r)/2;
int nzc = nz(m);
if(nzc==p)
{
while(nzc==p)
{
m=m-1;
nzc=nz(m);
}
return m+1;
}
if(nzc<p) return rez(m+1, r, p);
if(nzc>p) return rez(l, m-1, p);
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
int p,l,r;
fin>>p;
fout<<rez(p,p*5,p);
return 0;
}
