static int GCD(int a, int b, int c)
if (Math.Max(a, invA) <= Math.Max(b, invB) && Math.Max(a, invA) <= Math.Max(c, invC))
small = Math.Max(a, invA);
else if (Math.Max(b, invB) <= Math.Max(c, invC))
small = Math.Max(b, invB);
small = Math.Max(c, invC);
for (i = 2; i <= small; i++)
if (Math.Abs(a) % i == 0 && Math.Abs(b) % i == 0 && Math.Abs(c) % i == 0)
for (i = 2; i <= Math.Min(Math.Abs(a), Math.Abs(c)); i++)
if (a % i == 0 && c % i == 0)
double sqrtd = Math.Sqrt(Math.Abs(d));
if (min < sqrtd && max >= sqrtd)
static void Ans(int a, int b, int c)
if ((i + j) == b && (i * j) == d)
for (k = 1; k <= Math.Max(a, Math.Abs(b)); k++)
for (l = 1; l <= Math.Max(a, Math.Abs(b)); l++)
if ((k * l) == a && (j2 / l) * (i2 / k) == c)
if ((o * p) == a && ((m * o) + (n * p)) == b && (m * n) == c)
Console.Write($"({o}x ");
Console.Write($"+ {n})");
Console.Write($"- {invN})");
Console.Write($"({p}x ");
Console.WriteLine($"+ {m})");
Console.WriteLine($"- {invM})");
Console.Write($"({a}x^2 ");
Console.Write($"+ {b}x ");
Console.Write($"- {invB}x ");
Console.WriteLine($"+ {c})");
Console.WriteLine($"- {invC})");
Console.WriteLine($"Tested {h} Combinations");
public static void Main(string[] args)
Console.WriteLine("Ax^2 + Bx + C");
Console.WriteLine("Enter the A, B, C Numbers");
Console.WriteLine("Enter all 0 to Exit");
a = int.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());
c = int.Parse(Console.ReadLine());
if (a == 0 && b == 0 && c == 0)
Console.WriteLine("Please enter an Equation that can be Factored");
Console.Write($"{a}x^2 ");
Console.Write($"+ {b}x ");
Console.Write($"- {invB}x ");
Console.Write($"+ {c} ");
Console.Write($"- {invC} ");
Console.Write("factored is ");
} while (a != 0 || b != 0 || c != 0);