Cod sursa(job #1861039)
| Utilizator | Data | 28 ianuarie 2017 15:38:03 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.87 kb |
#include<iostream>
#include<fstream>
using namespace std;
long long p,n;
ifstream f("fact.in");
ofstream g("fact.out");
int zero(long long q)
{
long long sum=0,p=5;
while(p<=q)
{
sum+=(q/p);
p*=5;
}
return sum;
}
long long cautare(long long d,long long s)
{
if(s<=d)
{
long long m=(d+s)/2;
long long nr0=zero(m);
if(nr0<p)
return cautare(m+1,d);
else
if(nr0>p)
return(s,m-1);
return m-(m%5);
}
return -1;
}
int main()
{
f>>p;
if(p==0)
g<<1;
else
{
n=cautare(1,100000000);
g<<n;
}
return 0;
}
