Cod sursa(job #1415425)
Utilizator | Data | 4 aprilie 2015 16:01:53 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int DCO5(int n)
{
int cont=0;
while(n>=5)
{
cont+=n/5;
n/=5;
}
return cont;
}
int main()
{
int P,li=5,ls=1000000000,mij,c;
bool stop=0;
in>>P;
if(P==0)
{
out<<1;
return 0;
}
while(li<=ls)
{
mij=(li+ls)/2;
c=DCO5(mij);
if(c==P)
{
out<<mij/5*5;
return 0;
}
else if(c>P) ls=mij-1;
else li=mij+1;
if(li==ls && stop==0) stop=1;
if(li==ls && stop==1) break;
}
out<<-1;
return 0;
}