Pagini recente » Rezultatele filtrării | Cod sursa (job #2346131) | Cod sursa (job #380183) | Cod sursa (job #881139) | Cod sursa (job #291597)
Cod sursa(job #291597)
#include <cstdlib>
#include <iostream>
#include <limits>
using namespace std;
unsigned long int cp[] = {0,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625};
int ex[] = {0,0,1,3,6,10,15,21,28,36,45,55,66,78};
unsigned long int Ev(unsigned long int p)
{
if (p==0) return 1;
unsigned long int aux=5;
unsigned long int rez = p*5;
for(int i=0;i<=13;i++)
if (cp[i]>=rez)
{
rez-=5*ex[i-2];
return rez;
}
return rez;
}
int main(int argc, char *argv[])
{
long unsigned int pp;
freopen("fact.in","r",stdin);
cin >> pp;
fclose(stdin);
freopen("fact.out","w",stdout);
unsigned long int i1,i2;
i1=Ev(pp);
i2=Ev(pp+1);
if(i1==i2) cout << -1;
else cout<<i1;
fclose(stdout);
return EXIT_SUCCESS;
}