A big mistake: the return type in the function prototype is different
from that in the function definition.
a big mistake: the return type in the "factorial" function prototype is
different from the function definition.