i'm still pretty new to programming in c# but I gave it a shot, probably over complicated things: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Practice_4_12_17 { class Program { static int getVar(out int a, out int b, out int c, out int d) { /* Gets the values to be used / Console.Write("a: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("b: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("c: "); c = Convert.ToInt32(Console.ReadLine()); Console.Write("d: "); d = Convert.ToInt32(Console.ReadLine()); return a + b + c + d; } static void Main(string[] args) { Console.WriteLine("Let's simplify an equation:"); Console.WriteLine("Let's start off with an equation in the form of (asqrt(b))/(csqrt(d))"); Console.WriteLine("And let's elimnate the radical in the denominator, thus eliminating the 'd'"); Console.WriteLine("And putting the equation in the form of (asqrt(b))/c"); Console.WriteLine("Naturally, this means that the values for a, b, and c will have to change"); Console.WriteLine("\nPlease enter the values for a, b, c, and d: \n");
int a, b, c, d;
//Go to method to obtain values
getVar(out a, out b, out c, out d);
//Verify correct values have been input
Question:
Console.WriteLine("\n \nSo you want to simplify ({0}*sqrt({1}))/({2}*sqrt({3})) (y/n)? \n", a, b, c, d);
string ans;
ans = Console.ReadLine();
switch (ans)
{
case "y":
break;
case "n":
Console.WriteLine();
getVar(out a, out b, out c, out d);
goto Question;
default:
goto Question;
}
//define 2nd instance of variables
int a2 = a;
int b2;
int c2 = c * d;
//start doing the simplifying
//find new b (and maybe a)
int newRad;
int power = 0;
newRad = b * d;
b2 = newRad;
int newRad2 = newRad;
double quickCheck = Math.Sqrt(newRad);
int evenSqrt = 0;
if (quickCheck % 1 == 0)
{
evenSqrt = 1;
goto A_and_C_Reduction;
}
Reduce_Radical:
double factor = Math.Sqrt(newRad2);
int reduceIt;
for(int p = 2; p <= factor; p++)
{
int p2 = p * p;
reduceIt = newRad2 % p2;
switch (reduceIt)
{
case 0:
newRad2 /= (p2);
power += p;
goto Reduce_Radical;
default:
break;
}
}
int power2 = power * power;
if (power > 0)
{
b2 = newRad / power2;
a2 *= power;
}
//find new a and c
A_and_C_Reduction:
int reduction = (c/2);
Bring_It_Down:
for(int x = 2; x <= reduction; x++)
{
if((a2%x == 0) && (c2%x == 0))
{
a2 /= x;
c2 /= x;
goto Bring_It_Down;
}
}
if (c2 != 1)
{
switch (evenSqrt)
{
case 1:
int b3 = Convert.ToInt32(Math.Sqrt(b2));
int a3 = a2 * b3;
Console.WriteLine("\n'b' and 'd' have been elimnated");
Console.WriteLine("a now equals {0} and c now equals {1}\n", a3, c2);
Console.WriteLine("Your new radical is: \n\n");
Console.WriteLine("({0}/{1})", a3, c2);
int divisible = a3 % c2;
if (divisible == 0)
{
int a4 = a3 / c2;
Console.WriteLine("'c' was a factor of 'a', as a result the entire number is:");
Console.WriteLine(a4);
}
break;
default:
Console.WriteLine("\n'd' has been elimnated");
Console.WriteLine("a now equals {0}, b now equals {1}, and c now equals {2}\n", a2, b2, c2);
Console.WriteLine("Your new radical is: \n\n");
Console.WriteLine("({0}*sqr({1})/{2}", a2, b2, c2);
break;
}
}
else
{
Console.WriteLine("\n'c' and'd' have been elimnated");
Console.WriteLine("('c' is eliminated because it is giving us a denominator of 1");
Console.WriteLine("a now equals {0}, b now equals {1}, and c now equals {2}", a2, b2, c2);
if (evenSqrt == 1)
{
int a3 = a2 * b2;
Console.WriteLine("\n'b' has also been elimnated seeing as it equals '1' now");
Console.WriteLine("the number left over (the entire fraction) is {0}", a3);
}
else
{
Console.WriteLine("Your new radical is: \n\n");
Console.WriteLine("({0}*sqr({1})/{2}", a2, b2);
}
}
Console.ReadLine();
}
}
}