/* I have modified the code to print all factorials from 0 to <t (t is user input)... Answers are correct as per my knowledge.. Still WA in SPOJ.. Please help....
*/
include
include
using namespace std;
struct alpha
{
long double num[2];
};
int main()
{
int i,j,t,maxi=0,tmp,pre,qw=0;
cin>>t;
alpha a[t],temp;
long double fac=1,arr[t];
for(i=0;i<t;i++)
{
//cin>>j;
if(j>maxi)
maxi=j;
a[i].num[0]=i;
a[i].num[1]=i;
}
for(i=0;i<t;i++)
{
for(j=i;j<t;j++)
{
if(a[i].num[0]>a[j].num[0])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
i=0;
for(j=0;j<t;j++)
{
tmp=a[j].num[0];
if(tmp==0)
{arr[(int)a[i].num[1]]=0;
i++;}
else if(tmp==pre)
{arr[(int)a[i].num[1]]=fac;
i++;}
else{
while(qw<tmp)
{
qw++;
fac=fac*qw;
}
arr[(int)a[i].num[1]]=fac;
i++;
}
}
system("CLS");
for(i=0;i<t;i++)
cout<<arr[i]<<endl;
return 0;
}