Mai intai trebuie sa te autentifici.
Cod sursa(job #1037580)
Utilizator | Data | 20 noiembrie 2013 13:39:34 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | cei_mici_2 | Marime | 0.66 kb |
#include<fstream>
#define numaru 400000016
using namespace std;
long long verif(long long n)
{
long long s=0,o=1;
while(o<=n)
s+=(n/(o*=5));
return s;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
long long k,q,w,e,p,r;
while(f>>p){
if(p==0) { g<<"1\n"; }
else
{
q=5; w=numaru;
while(q<=w)
{
k=(q+w)>>1;
e=verif(k);
if(e==p) break;
else if(e<p) q=k+1;
else w=k-1;
}
if(verif(k)!=p)g<<"-1\n";
else g<<k/5*5<<"\n";
}}
f.close();
g.close();
return 0;
}