using System.Collections;
using System.Diagnostics;
var numbers = Enumerable.Range(0, 50).Select(_ => rnd.Next(2,100000000)).ToArray();
Console.WriteLine($"[{string.Join(", ",numbers)}]");
var sw = new Stopwatch();
var filtered = numbers.Where((x, i) => !IsSumOf(x, numbers[0..i])).ToList();
Console.WriteLine($"Filtered [{string.Join(", ",filtered)}]");
Console.WriteLine($"Performed in {sw.ElapsedMilliseconds} ms");
bool IsSumOf(int x, Span<int> numbers)
if (numbers.Length == 0) return false;
if (h > x) return IsSumOf(x, numbers[..^1]);
if (mod == 0) return true;
for (var i = x / h; i>= 0; i--)
if (IsSumOf(x - i * h, numbers[..^1])) return true;