import java.util.ArrayList;

public class Euler633 {
    static String fmt5(double v) {
        int e = 0;
        double m = v;
        while (m >= 10.0) {
            m /= 10.0;
            e++;
        }
        while (m < 1.0) {
            m *= 10.0;
            e--;
        }

        double scale = 10000.0;
        double mr = Math.floor(m * scale + 0.5) / scale;
        if (mr >= 10.0) {
            mr /= 10.0;
            e++;
        }

        return String.format(java.util.Locale.US, "%.4fe%d", mr, e);
    }

    public static String solve() {
        int K = 7;
        int P_MAX = 10000000;

        boolean[] is_comp = new boolean[P_MAX / 2 + 1];
        ArrayList<Integer> primes = new ArrayList<>();
        primes.add(2);

        for (int i = 3; (long) i * i <= P_MAX; i += 2) {
            if (is_comp[i / 2])
                continue;
            for (int j = i * i; j <= P_MAX; j += i * 2) {
                is_comp[j / 2] = true;
            }
        }
        for (int i = 3; i <= P_MAX; i += 2) {
            if (!is_comp[i / 2]) {
                primes.add(i);
            }
        }

        double[] c = new double[K + 1];
        c[0] = 1.0;

        for (int p : primes) {
            double a = 1.0 / ((double) p * (double) p);
            double b = 1.0 - a;
            for (int k = K; k >= 1; --k) {
                c[k] = c[k] * b + c[k - 1] * a;
            }
            c[0] *= b;
        }

        return fmt5(c[7]);
    }

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