factorial.c