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));
}
}
aW1wb3J0IHN0ZC5zdGRpbzsKCnZvaWQgbWFpbigpCnsKICAgIGZvcihpbnQgaT0wOyBpPDg7IGkrKykKICAgICAgd3JpdGVmbG4oIiVzISA9ICVzIiwgaSwgZmFjdG9yaWFsKGkpKTsKfQoKdGVtcGxhdGUgZmFjdG9yaWFsKFQpCnsKICAgVCBmYWN0b3JpYWwoVCBuKQogICB7CiAgICAgIGlmIChuIDw9IDEpCiAgICAgICAgcmV0dXJuIGNhc3QoVCkxOwogICAgICBlbHNlCiAgICAgICAgcmV0dXJuIGNhc3QoVCkoIG4gKiBmYWN0b3JpYWwobi0xKSk7CiAgIH0KfQ==