Pagini recente » Cod sursa (job #183920) | Cod sursa (job #3122048) | Cod sursa (job #614852) | Cod sursa (job #152338) | Cod sursa (job #758014)
Cod sursa(job #758014)
#include<iostream>
#include<fstream>
using namespace std;
int p,n;
int verifica(int n);
void cauta(int st,int dr);
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
fin>>p;
if(p==0)
fout<<"1";
else
{
cauta(1,5*p);
if(verifica(n)==p)
fout<<n;
else
fout<<"-1";
}
return 0;
}
void cauta(int st,int dr)
{
if(st==dr)
{
n=st;
return ;
}
int mij=(st+dr)/2;
if(verifica(mij)<p)
cauta(mij+1,dr);
else
cauta(st,mij);
}
int verifica(int n)
{
int c=5;
int s=0;
while(n/c!=0)
{
s+=n/c;
c=c*5;
}
return s;
}