public class Euler727 {
    static class Point {
        double x, y;

        Point(double x, double y) {
            this.x = x;
            this.y = y;
        }
    }

    static double distance(Point a, Point b) {
        return Math.hypot(a.x - b.x, a.y - b.y);
    }

    static Point circumcenter(Point p1, Point p2, Point p3) {
        double x1 = p1.x, y1 = p1.y;
        double x2 = p2.x, y2 = p2.y;
        double x3 = p3.x, y3 = p3.y;

        double den = 2.0 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));

        double n1 = x1 * x1 + y1 * y1;
        double n2 = x2 * x2 + y2 * y2;
        double n3 = x3 * x3 + y3 * y3;

        double ux = (n1 * (y2 - y3) + n2 * (y3 - y1) + n3 * (y1 - y2)) / den;
        double uy = (n1 * (x3 - x2) + n2 * (x1 - x3) + n3 * (x2 - x1)) / den;

        return new Point(ux, uy);
    }

    static double dValue(int ra, int rb, int rc) {
        double a = ra, b = rb, c = rc;

        Point A = new Point(0.0, 0.0);
        Point B = new Point(a + b, 0.0);

        double cx = ((a + c) * (a + c) + (a + b) * (a + b) - (b + c) * (b + c)) / (2.0 * (a + b));
        double cy = Math.sqrt(Math.max(0.0, (a + c) * (a + c) - cx * cx));
        Point C = new Point(cx, cy);

        Point Pab = new Point(a, 0.0);
        Point Pac = new Point(a / (a + c) * cx, a / (a + c) * cy);
        Point Pbc = new Point(B.x + b / (b + c) * (cx - B.x), b / (b + c) * cy);

        Point D = circumcenter(Pab, Pac, Pbc);

        double k1 = 1.0 / a;
        double k2 = 1.0 / b;
        double k3 = 1.0 / c;
        double k4 = k1 + k2 + k3 + 2.0 * Math.sqrt(k1 * k2 + k2 * k3 + k3 * k1);
        double r = 1.0 / k4;

        double rhs_ab = (B.x * B.x + B.y * B.y) + (a + r) * (a + r) - (b + r) * (b + r);
        double ex = rhs_ab / (2.0 * B.x);

        double rhs_ac = (C.x * C.x + C.y * C.y) + (a + r) * (a + r) - (c + r) * (c + r);
        double ey = (rhs_ac - 2.0 * C.x * ex) / (2.0 * C.y);
        Point E = new Point(ex, ey);

        return distance(D, E);
    }

    static long gcd(long a, long b) {
        while (b != 0) {
            long temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }

    public static String solve() {
        double sum = 0.0;
        long count = 0;

        for (int a = 1; a <= 100; ++a) {
            for (int b = a + 1; b <= 100; ++b) {
                for (int c = b + 1; c <= 100; ++c) {
                    if (gcd(a, gcd(b, c)) != 1) {
                        continue;
                    }
                    sum += dValue(a, b, c);
                    ++count;
                }
            }
        }

        double ans = sum / count;
        return String.format(java.util.Locale.US, "%.8f", ans);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
