#include<stdio.h>
long long a[1000000],i,ans,n;
long long mon(long long n)
{
if(n<1000000)
return a[n];
else
return mon(n/2)+mon(n/3)+mon(n/4);
}
int main()
{
a[0]=0;a[1]=1;a[2]=2;a[3]=3;a[4]=4;a[5]=5;
for(i=6;i<1000000;i++)
{
a[i]=a[i/2]+a[i/3]+a[i/4];
if(a[i]<i)
a[i]=i;ON
}
while(scanf("%lld",&n)!=EOF)
{
ans=mon(n);
printf("%lld\n",ans);
}
return 0;
}
CAN ANYONE EXPLAIN ME THIS CODE FOR THE PROBLEM "COINS" .... AND PLZ EXPLAIN THE RETURN VALUE OF THE FUNCTION MON