var counts = new Dictionary<int, int>(); for (int i = 2; i < Math.Sqrt(int.MaxValue); i++) { for (int j = 2; j < 1291; j++) { long sum = i * i + j * j * j; if (sum > int.MaxValue) { break; }
int s = (int)sum; if (Utils.IsPalindrome(s.ToString())) { if (counts.ContainsKey(s)) { counts[s]++; } else { counts[s] = 1; } } } }