If I wanted to improve this program that would allow me to enter larger integers than 10, what would I do. I think I would use long. Any help or ideas??

#include <stdio.h>

int fact(int n);

int main(void) {

int current;

printf("Enter a positive integer [to terminate enter non-positive] > ");

scanf("%d", ¤t);

while (current > 0) {

printf("The factorial of %d is %d\n", current, fact(current));

printf("Enter a positive integer [to terminate enter non-positive] > ");

scanf("%d", ¤t);

}

}

/* n is a positive integer. The function returns its factorial */

int fact(int n) {

int lcv; /* loop control variable */

int p; /* set to the product of the first lcv positive integers */

for(p=1, lcv=2; lcv <= n; p=p*lcv, lcv++);

return p;

}