Pagini recente » Cod sursa (job #492370) | Cod sursa (job #3250931) | Cod sursa (job #2802369) | Cod sursa (job #2267594) | Cod sursa (job #988586)
Cod sursa(job #988586)
#include <fstream>
#include <climits>
using namespace std;
int numar_zero(int nr)
{
int s=0, a=5;
while(a<=nr)
{
s=s+(nr/a);
a=a*5;
}
return s;
}
int cautare(int a, int b, int p)
{
int c, nr0, gasit=0;
while(a<=b && gasit==0)
{
c=(a+b)/2;
nr0=numar_zero(c);
if(nr0==p)
gasit=1;
else if(nr0>p)
b=c-1;
else
a=c+1;
}
if(gasit==1)
return c;
else
return -1;
}
int scadere(int c, int p)
{
int nr01, c1=c;
nr01=numar_zero(c1);
while(p==nr01)
{
c1--;
nr01=numar_zero(c1);
}
return c1+1;
}
int main()
{
fstream inputFile, outputFile;
inputFile.open("fact.in", ios::in);
outputFile.open("fact.out", ios::out);
int a=1, b=INT_MAX, p, cifra;
inputFile>>p;
cifra=cautare(a, b, p);
if(cifra!=-1)
{
cifra=scadere(cifra, p);
outputFile<<cifra;
}
else
outputFile<<-1;
inputFile.close();
outputFile.close();
return 0;
}