Cod sursa(job #1199287)
| Utilizator | Data | 18 iunie 2014 19:16:33 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
long long v[]={5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125};
ifstream f("fact.in");
ofstream g("fact.out");
long fct(long long x){
long k=0;
for(int i=0;i<=10||x<v[i];i++) k+=x/v[i];
return k;
}
int main()
{
long long p,s,d,a;
long x;
f>>p;
s=0;
d=1000000000;
while(s<d){
a=(s+d)/2;
x=fct(a);
a=a-a%5;
if(x>p) d=a;
else s=a+5;
}
if(fct(s-5)==p) g<<d-5;
else g<<-1;
return 0;
}
