Cod sursa(job #2166659)
| Utilizator | Data | 13 martie 2018 18:11:53 | |
|---|---|---|---|
| Problema | Factorial | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("fact.in");
ofstream out ("fact.out");
int p,imp,contor,aux,poz;
int verificare (int x)
{
imp=5;
contor=0;
while (x/imp>0)
{
contor+=x/imp;
imp*=5;
}
return contor;
}
int main()
{
in>>p;
poz=0;
for (int i=1<<30;i>0;i=i>>1)
{
if (verificare(poz+i)<=p)
poz+=i;
}
if (poz==4)
out<<1;
if (p%2==1)
out<<-1;
else
out<<poz-4;
return 0;
}
