public class Euler214 {
    public static void main(String[] args) {
        int limit = 40000000, target = 25;
        boolean[] isComposite = new boolean[limit + 1];
        int[] phi = new int[limit + 1];
        int[] primes = new int[limit / 8];
        int pc = 0;
        phi[1] = 1;
        for (int i = 2; i <= limit; i++) {
            if (!isComposite[i]) {
                primes[pc++] = i;
                phi[i] = i - 1;
            }
            for (int j = 0; j < pc; j++) {
                long v = (long) i * primes[j];
                if (v > limit)
                    break;
                isComposite[(int) v] = true;
                if (i % primes[j] == 0) {
                    phi[(int) v] = phi[i] * primes[j];
                    break;
                }
                phi[(int) v] = phi[i] * (primes[j] - 1);
            }
        }
        byte[] chain = new byte[limit + 1];
        chain[1] = 1;
        for (int n = 2; n <= limit; n++)
            chain[n] = (byte) (chain[phi[n]] + 1);
        long sum = 0;
        for (int j = 0; j < pc; j++)
            if (chain[primes[j]] == target)
                sum += primes[j];
        System.out.println(sum);
    }
}
