Нормально ли сделал тестовое задание на PHP (числа Фибоначчи)?
А если во входящих данных будет число на несколько тысяч знаков длинной, то ваш скрипт по таймауту отвалится, по переполнению памяти, или за пару лет справится с задачей подсчета всех промежуточных чисел?

// немного кода из википедии

// A utility function that 
// returns true if x is  
// perfect square 
function isPerfectSquare($x) 
{ 
    $s = (int)(sqrt($x)); 
    return ($s * $s == $x); 
} 
  
// Returns true if n is a 
// Fibinacci Number, else false 
function isFibonacci($n) 
{ 
    // n is Fibinacci if one of  
    // 5*n*n + 4 or 5*n*n - 4 or  
    // both is a perferct square 
    return isPerfectSquare(5 * $n * $n + 4) ||  
           isPerfectSquare(5 * $n * $n - 4); 
}

Осталось перебрать и сложить.
$sum = array_reduce($input, function($acc, $n) {
	return isFibonacci($n) ? $acc + $n : $acc;
}, 0);
$inputNumbers = [3279, 920, 4181, 8, 337, 13, 918, 4923, 1,
    4448, 8, 4756, 4012, 7467, 89, 21, 9238, 2326, 6453, 89, 4606,
    3413, 3, 9950, 2098, 8579, 4914, 7204, 8875
];
$max_val = max($inputNumbers);
$result_sum = 0;
$fib_prev_prev = 0;
$fib_prev = 1;
$fib_temp = $fib_prev_prev + $fib_prev;
for ($i = 0; $fib_temp <= $max_val; $i++) {
	$found = 0;
	$fib_temp = $fib_prev_prev + $fib_prev;
	$fib_prev_prev = $fib_prev;
	$fib_prev = $fib_temp;
	if (array_search($fib_temp, $inputNumbers)) {
		$found = 1;
		$result_sum += $fib_temp;
	}
	echo $i," - ",$fib_temp, ($found==1 ? " found":""),"\n";
}
echo "Result sum ", $result_sum, "\n";
Сначала я хотел сказать, что реализовали не айс. Подумал, что если в исходном массиве сделать очень большое число, то генерируемый массив сожрет всю память :) Но потом долго смеялся, что уже на 90 числе было переполнение 64-бит и тип стал float. Ведь по большому счету Фибоначчи почти что степень двойки. Никакого такого супер массива сгенерить не получится. Ваш код работает, и мой тоже. Даже не берусь оценивать чей лучше. Хотелось бы увидеть мнение общественности. Мне кажется у меня подход проще.
0 - 1 found
1 - 2
2 - 3 found
3 - 5
4 - 8 found
5 - 13 found
6 - 21 found
7 - 34
8 - 55
9 - 89 found
10 - 144
11 - 233
12 - 377
13 - 610
14 - 987
15 - 1597
16 - 2584
17 - 4181 found
18 - 6765
19 - 10946
Result sum 4316
Возможно по заданию надо это все затолкнуть в массив ? Но чето сформулировано не очень конкретно.