using System.Collections.Generic;
using System.Threading.Tasks;
private const double Tolerance = 0.001;
public static void Main()
Console.WriteLine("Square root finder");
Console.WriteLine("Please enter the number you want to square root: ");
string SInput = Console.ReadLine();
double NInput = Convert.ToInt64(SInput);
double NOutput = FindRoot(NInput, 0, NInput, 0.01);
Console.WriteLine(NOutput);
Console.WriteLine(NOutput);
Console.WriteLine("Invalid!");
private static double FindRoot(double Target, double Start, double End, double Tolerance)
double HTarget = Target / 2;
double NTarget = HTarget * HTarget;
double Difference = Target - NTarget;
if (Difference < Tolerance && Difference > (0 - Tolerance))
Console.WriteLine("The square root is (roughly) {0}", HTarget);
else if (Difference > Tolerance)
double STarget = FindRoot(Target, 0, HTarget, Tolerance);
else if (Difference < (0 - Tolerance))
double STarget = FindRoot(Target, HTarget, Target, Tolerance);