Mai intai trebuie sa te autentifici.
Cod sursa(job #1889638)
| Utilizator | Data | 22 februarie 2017 20:14:52 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p;
long long checker(long long x)
{
long long s=0;
long long q=5;
while(x/q)
{
s+=(x/q);
q*=5;
}
return s;
}
long long cautare_binara(long long MAX,long long Min)
{
while(Min<MAX)
{
long long mijloc=(MAX+Min)/2;
long long nr = checker(mijloc);
if(nr==p)
return mijloc;
else if(nr>p)
MAX=mijloc-1;
else
Min=mijloc+1;
}
if(MAX<Min)
return -1;
}
int main()
{
f>>p;
if(p==0)
g<<1;
else
{
long long MAX=1000000000;
long long MIN=5;
long long w=cautare_binara(MAX,MIN);
while(w%5)
w--;
g<<w;
}
}
