Cod sursa(job #2785432)
| Utilizator | Data | 18 octombrie 2021 17:56:23 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int nr_zero(int n)
{
int nr=0;
for(int i=5;i<=n;i=i*5)
{
nr=nr+n/i;
}
return nr;
}
int main()
{
int p,n,st,dr,mij;
in>>p;
st=1;
dr=2000000000;
int c,ok=0;
while(st<=dr && ok==0)
{
mij=(st+dr)/2;
int x=nr_zero(mij);
if(x==p)
{
c=mij;
ok=1;
}
else if(x<p)
{
st=mij+1;
}
else
dr=mij-1;
}
if(ok==0)
out<<-1;
else
out<<c-c%5;
return 0;
}
