Pagini recente » Cod sursa (job #2067265) | Cod sursa (job #2061124) | Cod sursa (job #1350707) | Cod sursa (job #2220354) | Cod sursa (job #588866)
Cod sursa(job #588866)
#include <fstream.h>
#include <math.h>
long long progr[14], p, s; int cnt5[14];
int i;
main(){
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
for(i=1;i<=13;i++)
progr[i]=progr[i-1]+floor(pow(5,i-1));
scanf("%lld", &p);
if(p==0){
printf("1");
return 0;}
for(i=1;progr[i]<=p;i++);
i--;
while(s!=p&&i>0){
for(cnt5[i];s<=p&&cnt5[i]<5;cnt5[i]++, s+=progr[i]);
s-=progr[i];
cnt5[i--]--;}
if(p==s){
s=0;
for(i=1;i<=13;i++)
s+=floor(pow(5,i))*cnt5[i];
printf("%lld", s);}
else
printf("-1");
}