Mai intai trebuie sa te autentifici.
Cod sursa(job #2607645)
| Utilizator | Data | 29 aprilie 2020 22:43:21 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <cstdio>
using namespace std;
int mid;
int get_zero(int x)
{
int i=5,s=0;
while(i<=x)
{
s+=x/i;
i*=5;
}
return s;
}
int cautare_binare(int p)
{
int st=1,dr=500000000;
while(st<=dr)
{
mid=(st+dr)/2;
if(p<=get_zero(mid)) dr=mid-1;
else st=mid+1;
}
return st;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%d",&p);
int n=cautare_binare(p);
if(get_zero(n)==p) printf("%d",n);
else printf("-1");
return 0;
}
