Input: arr[] = {1, 2, 3, 4, 5}
Output: 2
Explanation: The possible pairs of distinct numbers from the array are: (1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5). The products of each of these pairs are: 2, 3, 4, 5, 6, 8, 10, 12, 15, 20. Out of these products, the only Fibonacci numbers are 2, 3, 5, and 8. The smallest of these is 2, the answer we need to return.
Input: arr[] = {3, 7, 10, 15, 22}
Output: 21
Explanation: The possible pairs of distinct numbers from the array are: (3, 7), (3, 10), (3, 15), (3, 22), (7, 10), (7, 15), (7, 22), (10, 15), (10, 22), (15, 22). The products of each of these pairs are 21, 30, 45, 66, 70, 105, 154, 150, 220, 330. The smallest Fibonacci number is 21, the answer we need to return.
Input: arr[] = {4, 6, 8, 10}
Output: -1
Explanation: The possible pairs of distinct numbers from the array are: (4, 6), (4, 8), (4, 10), (6, 8), (6, 10), (8, 10). The products of each of these pairs are 24, 32, 40, 48, 60, and 80. None of these products are Fibonacci numbers, so no Fibonacci number can be formed by multiplying any two distinct numbers from the given array.