public static void Main()
for (int i = 1; i < 10; i++)
var c = RandomCalculation(1, 2, 3, 4);
Console.WriteLine(c.Text + ": " + c.Result);
private static Random rnd = new Random();
public readonly Func<int, int, int> Calculate;
public readonly string Operator;
public Operation(Func<int, int, int> calculate, string op)
private static Operation Add = new Operation((a, b) => (a + b), "+");
private static Operation Subtract = new Operation((a, b) => (a - b), "-");
private static (int Result, string Text) RandomCalculation(int a, int b, int c, int d)
var abOperation = (rnd.Next(2) == 1) ? Add : Subtract;
var cdOperation = (rnd.Next(2) == 1) ? Add : Subtract;
(int)Math.Pow(abOperation.Calculate(a, b), 2) * cdOperation.Calculate(c, d),
$"(a{abOperation.Operator}b)²*c{cdOperation.Operator}d");