# -*- coding: utf-8 -*- import random import time start = time.clock() N, p = map(float, raw_input().split()) N = int(N) QQ = 10 ** 6 total = 0 q = 0 # モンテカルロ法 while time.clock() - start < 0.8: prime = [True] * (N + 1) prime[0] = prime[1] = False for v in xrange(2, N + 1): if not prime[v]: continue if random.random() <= 1 - p: for i in xrange(v + v, N + 1, v): prime[i] = False total += sum(prime) q += 1 print 1.0 * total / q