Follows 324.c (Total 28 lines):

/* @JUDGE_ID:4461XX 324 C */
/* A */
#include <stdio.h>
void main( void )
{
	int n , num[800] , i , j , a[10] ;
	while( scanf( "%d" , &n )==1 )
	{
		if( n==0 ) break ;
		for( i=1 ; i<800 ; i++ ) num[i] = 0 ;
		for( i=0 ; i<10 ; i++ ) a[i] = 0 ;
		num[0] = 1 ;
		for( i=2 ; i<=n ; i++ )
		{
			int k=0 ;
			while( k<800 ) { num[k] *= i ; k++ ; }
			for( j=0 ; j<800 ; j++ ) if( num[j]>=10 ) { num[j+1] += num[j]/10 ; num[j] = num[j]%10 ; }
		}
		for( i=799 ; i>=0 ; i-- )
			if( num[i]!=0 ) break ;
		for( j=i ; j>=0 ; j-- ) a[num[j]]++ ;
		printf( "%d! --\n" , n ) ;
		for( j=0 ; j<5 ; j++ ) printf( "   (%d)%5d " , j , a[j] ) ;
		printf( "\n" ) ;
		for( j=5 ; j<10 ; j++ ) printf( "   (%d)%5d " , j , a[j] ) ;
		printf( "\n" ) ;
	}
}

Back to statistics
Ya-Lin Huang (C)
huangyl@gmail.com