import std.stdio;

void main()
{
    for(int i=0; i<8; i++)
      writefln("%s! = %s", i, factorial(i));
}

template factorial(T)
{
   T factorial(T n)
   {
      if (n <= 1)
        return cast(T)1;
      else
        return cast(T)( n * factorial(n-1));
   }
}