f=lambda n,a=1,b=1:n<1or a*f(n-1,b,a+b) for n in range(1, 21) + [100]: print '%-3u %u' % (n, f(n))
Standard input is empty
1 1 2 1 3 2 4 6 5 30 6 240 7 3120 8 65520 9 2227680 10 122522400 11 10904493600 12 1570247078400 13 365867569267200 14 137932073613734400 15 84138564904377984000 16 83044763560621070208000 17 132622487406311849122176000 18 342696507457909818131702784000 19 1432814097681520949608649339904000 20 9692987370815489224102512784450560000 100 3371601853146468125386964065447576689828006172937411310662486977801540671138589868616500834190029067583665182291701553172011082574587431382310099030394306877775647395167143332483560925112960024644459715300507481235056111434293619038347456390454209587101225261757371666449068625033999573552165524529725467628060170886602001077137613803027158648329335507728698605769992818756765633305318529965186184043999696650407246193257877568825245646129366994079739720698147440310773871269639752334356493678913424390564535389212240038895626811627949132978086070255082668392290037141141291484839596694182152062726390364094447642643912371532491388089634845995941928089653751672688740718152064107169357399466473375804972260594768969952507346694189050233823596316467570584434128052398891223730335019092974935617029638919358286124350711360361279157416837428904150054292406756317837582840596331363581207781793070936765786629772999832857257349696094416616259974304208756997835360702840912518532683324936435856348020736000000000000000000000000