**Answer:**

Following are the code in c language

#include <stdio.h> // header file

long int factorial(int n); // declaration of factorial function

int main() // main function

{

int n; // variable declaration

printf("Enter a positive integer: ");

scanf("%d", &n); // input number

while(n<0) // checking the condition if number is negative

{

printf("please enter a positive number:");

scanf("%d", &n);

}

printf("Factorial of %d = %ld", n, factorial(n)); // calling factorial function

return 0;

}

long int factorial(int n1) // recursive definition of factorial

{

if (n1 >= 1)

return n1*factorial(n1-1);

else

return 1;

}

**Explanation:**

In this program, it ask for a positive number input. if the value enter by user is negative then it again ask for positive input i.e positive number. Then it calls the recursive function of factorial. the recursive function factorial calculate the factorial recursively. suppose user input 4 then it goes to the if part of program i.e return n*factorial(n-1); that means return 4*factorial(3) again recursive function call itself .this process repeated until it meets the base condition. when a base condition meets, it return factorial of the given number.

**output**

Enter a positive integer: 5

factorial of 5=120

Enter a positive integer: -8

please enter a positive number:4

factorial of 4=24