using System; using System.Collections.Generic; using System.IO; using System.Linq; using static System.Math; using static Extensions; static class Extensions { public static void GetNums(out T1 dest1) { var str = Console.ReadLine().Split(); dest1 = (T1)typeof(T1) .GetMethod("Parse", new Type[] { typeof(string) }) .Invoke(null, new object[] { str[0] }); } public static void GetNums(out T1 dest1, out T2 dest2, out T3 dest3) { var str = Console.ReadLine().Split(); dest1 = (T1)typeof(T1) .GetMethod("Parse", new Type[] { typeof(string) }) .Invoke(null, new object[] { str[0] }); dest2 = (T2)typeof(T2) .GetMethod("Parse", new Type[] { typeof(string) }) .Invoke(null, new object[] { str[1] }); dest3 = (T3)typeof(T3) .GetMethod("Parse", new Type[] { typeof(string) }) .Invoke(null, new object[] { str[2] }); } } class Program { static StreamWriter sw; static void Main() { sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false }; Console.SetOut(sw); Solve(); Console.Out.Flush(); } static void Solve() { int m; GetNums(out m); for (int i = 0; i < m; i++) { double a, b, t; GetNums(out a, out b, out t); double n; if (a == 0.0) n = Exp(Pow(t, 1.0 / b)); else if (b == 0.0) n = Pow(t, 1.0 / a); else { double d; n = 2.0; do { double t1 = Log(n); double t2 = Pow(n, a - 2.0); double t3 = Pow(t1, b - 2.0); double d0 = t2 * n * n * t3 * t1 * t1 - t; double d1 = t2 * n * t3 * t1 * (a * t1 + b); double d2 = t2 * t3 * (((a * 2.0 - 1.0) * b + (a - 1.0) * a * t1) * t1 + (b - 1.0) * b); d = d0 / (d1 - (d0 * d2) / (d1 * 2.0)); n -= d; } while (Abs(d) > 10e-10); } sw.WriteLine("{0:.#########}", n); } } }