public long Solve() { var totient = new Utils.Totient(UpperLimit).GetTotientList(); var sum = 0L; for (var n = BottomLimit; n < UpperLimit; n++) { for (var m = n + 1; m < UpperLimit; m++) { sum += SpecialProblemFunction(totient[n], n, totient[m], m); } } return sum; }