Cod sursa(job #1259939)
Utilizator | Data | 10 noiembrie 2014 18:37:51 | |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("factorial.in");
ofstream g ("factorial.out");
long long n,p,ls,ld;
int nz (int n)
{
int k=n,p=5;
while (p<=n)
{
k+=n/p;
p=p*5;
}
return k;
}
int main()
{
f>>p;
ls=1;
ld=1000000000;
int sw=0;
while (ls<=ld&&!sw)
{
if (p>nz((ls+ld)/2)) ls=(ls+ld)/2+1;
else if (p<nz((ls+ld)/2)) ld=(ls+ld)/2-1;
else
{
g<<((ls+ld)/2)*5;
sw=1;
}
}
if (sw==0) g<<(ls+ld)/2*5+5;
return 0;
}