C语言中n的阶乘的使用出错

请问这个代码哪里有问题啊,怎么正常运行上面的函数呢?

#include 
#include 
int Factorial(int number){
    int fac=1;
    printf("Please enter an integer:") ;
    scanf("%d", &number);
    for(int i=1; i<=number; i++)
    {
        fac = i*fac;
    }
    printf("The factorial of this integer is:") ;
    printf("%d ", fac);
    return fac;
}
int main()
{
int a=Factorial(number);
scanf("%d",&a);

printf("Factorial=%d\n",num);

}


修改如下,望采纳,谢谢!

#include<stdio.h>
#include<math.h>
int Factorial(int number){
    int fac=1;
    for(int i=1; i<=number; i++)
    {
        fac = i*fac;
    }
    printf("The factorial of this integer is:") ;
    printf("%d ", fac);
    return fac;
}
int main()
{
    int number;
    printf("Please enter an integer:") ;
    scanf("%d", &number);
    int num=Factorial(number);
    printf("Factorial=%d\n",num);
    return 0;
}