Cod sursa(job #2065691)
| Utilizator | Data | 14 noiembrie 2017 00:35:04 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
const long int PMAX = 1000000000;
const int pw2=536870912;
int nrzero(int n)
{
long int five=5,result=0;
while(n>=five)
{
result=result+n/five;
five=five*5;
}
return result;
}
int CBclasic(int x)
{
int sol=PMAX;
for(int i=pw2;i>=1;i=i/2)
{
if(sol-i>=1 && nrzero(sol-i)>=x)
sol-=i;
}
if(nrzero(sol)==x)
return sol;
else
return -1;
}
int main()
{
long long int x;
in>>x;
out<<CBclasic(x);
}
