Cod sursa(job #1442560)
Utilizator | Data | 25 mai 2015 20:34:06 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.83 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int main ()
{
int p , c ;
long long stanga , dreapta , m , x ;
stanga=1 ;dreapta=1000000000 ;
fin >> p ;
while(stanga<=dreapta)
{
m=(stanga+dreapta)/2 ;
x=m ;
c=0 ;
while(m!=0)
{
c=c+m/5 ;
m=m/5;
}
if(c==p)
{
if(x-x%5==0) fout << "1" ;
else fout << x-x%5 ;
dreapta=-1 ;
}
else if (c>p) dreapta=(stanga+dreapta)/2-1 ;
else stanga=(stanga+dreapta)/2+1 ;
}
if(dreapta!=-1)
fout << "-1" ;
return 0;
}