Cod sursa(job #3033355)
Utilizator | Negret Bianca Bianca2507 | Data | 23 martie 2023 19:40:03 |
---|---|---|---|
Problema | Factorial | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.88 kb |
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int gasit,p,n,st,dr,mid;
int nr_zerouri(int x)
{
int pt=5;
int nr=0;
while(x>=pt)
{
nr=nr+x/pt;
pt=pt*5;
}
return nr;
}
int main()
{
///nr de 0-uri este egal cu puterea la care apare 5 in n!
cin>>p;
if(p==0)
cout<<1;
else
{
st=1;gasit=-1;
dr=100000000;
while(st<=dr)
{
mid=(st+dr)/2;
if(nr_zerouri(mid)==p)
{
n=mid;
dr=mid-1;
gasit=1;
}
else
if(nr_zerouri(mid)<p)
st=mid+1;
else
dr=mid-1;
}
if(gasit==-1)
cout<<-1;
else
cout<<n;
}
return 0;
}