Cod sursa(job #2531236)
Utilizator | Data | 25 ianuarie 2020 22:11:44 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <bits/stdc++.h>
#define Inf 1000000000000000
#define ULL unsigned long long
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
ULL nr=0;
ULL p;
ULL total(ULL val)
{
ULL sum=0;
for(ULL i=5;val/i>=1;i*=5)
sum+=val/i;
return sum;
}
int main()
{
in>>p;
for(ULL pas=Inf;pas;pas/=2)
while( total(nr+pas)<p )
nr+=pas;
nr++;
if(total(nr)!=p)
out<<-1;
else
out<<nr;
return 0;
}