FCTRL2: getting wrong answer

Can anyone tell me what is wrong with this code

#include<stdio.h>
int main()
{
    int t,n;
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
        int f=1;
        scanf("%d",&n);
        if(n<=0 || n>100)
            continue;
        while(n>0)
        {
            f*=n;
            n--;
        }
        printf("%d\n",f);
    }    
}

The calculated result is too big to hold in any of the integer data types in C++

See the blog editorial: Tutorial for Small Factories

Oh right. I got it. Thanks.