# Definition

Fibonacci sequence F(n), on the positive integers, are defined as such:

1. F(1) = 1
2. F(2) = 1
3. F(n) = F(n-1) + F(n-2), where n is an integer and n > 2


The Fibonacci-orial of a positive integer is the product of [F(1), F(2), ..., F(n)].

Given positive integer n, find the Fibonacci-orial of n.

# Specs

The fibonacci-orial of 100 must compute in under 5 seconds on a reasonable computer.

# Testcases

n   Fibonacci-orial of n
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


# References

• – Leaky Nun Jul 30 '16 at 3:19
• @LuisMendo The sum of fibonacci is... you've guessed it, fibonacci. Well, minus one. – Leaky Nun Jul 30 '16 at 9:23
• @LeakyNun Currently the JavaScript answer only completes the test cases up to 15 because JavaScript cannot correctly compare (or manipulate) numbers beyond 2^53 - 1. This is most likely similar for a lot of the submissions here, because most languages don't support numbers that big – MayorMonty Jul 30 '16 at 13:54
• What do you mean by "reasonable computer"? – Erik the Outgolfer Jul 31 '16 at 16:26
• -1 because this seems like several challenges tacked together (range, fibonacci of each, factorial) with no particularly interesting shortcuts. – Esolanging Fruit Dec 28 '17 at 2:25

# Common Lisp, 65 bytes

(defun f(n &optional(a 1)(b 1))(if(< n 1)1(*(f(1- n)b(+ a b))a)))


Try it online!

Another port of Dennis's Python answer.

The straight iterative implementation is four bytes more:

(lambda(n)(do((x 1 y)(y 1(+ x y))(i 0(1+ i))(p 1(* p x)))((= i n)p)))


# Stax, 5 bytes

Æn─⌂▄


Run and debug it Unpacked it's

vOF|5*
v      decrement input by 1
O     tuck 1 under top value of stack (in case input was one)
F    turns rest of loop into a for loop for 1..(input-1)
|5  get F(i+1)
* multiply by running product


# Lua, 76 bytes

## Naïve solution (works until 14)

Try it online!

function I(x,a,b,c)return x<1 and c or I(x-1,a+b,a,a*c)end print(I(z,1,0,1))


## Arbitrary-precision solution, using lua-nums (94 bytes)

--nums.bn is the name of the library as obtained from Luarocks
function I(x,a,b,c)return x<1 and c or I(x-1,a+b,require"nums.bn"(a),a*c)end print(I(z,1,0,1))


(Obviously you could rename the library in order to have shorter code, but this smells like cheating).

Timings for the second solution are:

real    0m0,030s
user    0m0,028s
sys 0m0,000s