c# - not all paths return a value in anonymous method -
i trying create method checks if number abundant (the sum of proper divisors greater number itself), error @ 1.toinc(28123, 1)
line of code says: "not code paths return value in anonymous method of type system.func<int,bool>
". believe referring isabundant
method. in isabundant
doesn't return value?
public void solve () { //check if number abundant -> number < sum of proper divisors. memoize func<int, bool> isabundant = x => { return x < properdivisors (x).select(x => x).sum () && x >= 0; }; isabundant = isabundant.memoize (); //make sequence of these numbers readability var seq = 12.toinc (28123, 1).takewhile (x => isabundant (x)); // take numbers between 13 , 28123 take while (from 12 number / 2 sequence) check if number - item sequence isn't abundant 1.toinc (28123, 1).takewhile (x => { foreach (var in seq){ if (i < x/2){ if (isabundant (x - i)) return false; else return true; } } }) // sum .sum ().display (); } }
this referring lambda here:
.takewhile (x => { foreach (var in seq){ if (i < x/2){ if (isabundant (x - i)) return false; else return true; } } // if there no elements in seq, you'll reach here, , never return value! // add here, ie: return false; })
Comments
Post a Comment