public override string ToString()
{
StringBuilder sb = new StringBuilder();
foreach (var term in quadratic)
sb.AppendFormat("{0:+#;-#}{1}{2} ", term.Value, term.Key.Item1, term.Key.Item2);
foreach (var term in linear)
sb.AppendFormat("{0:+#;-#}{1} ", term.Value, term.Key);
if (c != 0)
sb.AppendFormat("{0:+#;-#} ", c);
if (sb.Length > 0)
sb.Remove(sb.Length - 1, 1);
return sb.ToString();
}