However, for polynomials, there are specific algorithms that use algebraic property for certifying that no root is missed, and locating the beginnings in separate intervals (or disks for complex beginnings) that are small enough to ensure the convergence of numerical methods (typically Newton's method) to the unique root so located. As, generally, the zeroes of a function can not be calculated precisely nor expressed in closed form, root-finding algorithms supply approximations to zeroes, expressed either as floating point numbers or as small isolating intervals, or disks for complex beginnings (an interval or disk output being equivalent to an approximate output together with an mistake bound).

COMING SOON!

```
namespace Algorithms.Numeric.GreatestCommonDivisor
{
/// <summary>
/// TODO.
/// </summary>
public class EuclideanGreatestCommonDivisorFinder : IGreatestCommonDivisorFinder
{
/// <summary>
/// Finds greatest common divisor for numbers a and b
/// using euclidean algorithm.
/// </summary>
/// <param name="a">TODO.</param>
/// <param name="b">TODO. 2.</param>
/// <returns>Greatest common divisor.</returns>
public int Find(int a, int b)
{
if (a == 0 && b == 0)
{
return int.MaxValue;
}
if (a == 0 || b == 0)
{
return a + b;
}
var aa = a;
var bb = b;
var cc = aa % bb;
while (cc != 0)
{
aa = bb;
bb = cc;
cc = aa % bb;
}
return bb;
}
}
}
```