Cod sursa(job #2295073)
Utilizator | Data | 3 decembrie 2018 02:36:40 | |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int fact(int n)
{ int i,val=0;
for(i=5; n/i>=1; i*=5)
val+=n/i;
return val;
}
int main()
{ fin>>p;
if(p==0) {fout<<1; return 0;}
else if(p==1) {fout<<5; return 0;}
long long s=0,d=5*p;
int pp=0;
long long m;
while(s<=d)
{ m=(s+d)/2;
if(fact(m)==p) {fout<<m/5*5; return 0;}
else if(fact(m)<p) s=m+5;
}
fout<<-1;
return 0;
}