10220 - I Love Big Numbers !

#include<stdio.h>
#define max 5005
#define length 3000
long long int fact[max][length];
void fact1()
{
    long long int i,j,rem=0;
    fact[0][0]=1;
    fact[1][0]=1;
    for(i=2;i<max;i++)
    {
        for(j=0;j<length;j++)
        {
            fact[i][j]=(fact[i-1][j]*i)+rem;
            rem=0;
            if(fact[i][j]>9)
            {
                rem=fact[i][j]/10;
                fact[i][j]=fact[i][j]%10;
            }
        }
    }

}
int main()
{

    long long int i,n,sum;
    fact1();
    while(scanf("%lld",&n)==1)
    {
        sum=0;
        for(i=length-1;i>=0;i--)
        {
            if(fact[n][i]!=0)
            {
                break;
            }
        }
        for(;i>=0;i--)
        {
            sum+=fact[n][i];
        }
        printf("%lld\n",sum);
    }
    return 0;
}

0 comments: (+add yours?)