Pagini recente » Cod sursa (job #1408697) | Cod sursa (job #759021) | Cod sursa (job #2432383) | Cod sursa (job #3245638) | Cod sursa (job #291600)
Cod sursa(job #291600)
#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)
{
if(cp[i]==rez) rez-=5*ex[i];
else if(cp[i-1]<=rez) rez-=5*ex[i-1];
else rez-=5*(ex[i-1]-1);
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;
}